Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 14 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Rýchle MySQL

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 06.02.2009 13:17

Čavte, neviem, či to tu už bolo ale neviem o tom. Chcel by som od vás, aby ste mi napísali čo najviac trikov na zrýchlenie databázových queries a tiež detailne vysvetlili ako sa používajú. Počul som niečo o JOIN, LEFT a tak, ale netuším ako sa to používa. Tak prosím čo najviac takých trikov mi napíšte. Vďaka.


Offline

Správca fóra
Správca fóra
Rýchle MySQL

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 06.02.2009 14:09

Pre zaciatok http://www.pcforum.sk/optimalizovanie-s ... 49601.html







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Rýchle MySQL

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 06.02.2009 15:14

Nepomohlo :) nie som o nič múdrejší :) keby mi to niekto vysvetlil tu na príklade a konkrétne pre MySQL + PHP bol by som rád...


Offline

Skúsený užívateľ
Skúsený užívateľ
Rýchle MySQL

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 06.02.2009 21:17

Kód:
SELECT user_id, user_email, user_name, paid_sum FROM users_tbl INNER JOIN paid_tbl ON user_id=paid_user_id

Pýtaš sa teda na JOIN-ovanie?
http://dev.mysql.com/doc/refman/5.0/en/join.html
prípadne nejaké to hľadanie:
http://search.mysql.com/search?q=select ... en&x=0&y=0







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
Rýchle MySQL

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 06.02.2009 21:21

roobertek, manuály si viem nájsť aj sám ;) ale asi im nerozumiem, najmä keď sú po anglicky a nechce sa mi prekladať, nakoľko mám chrípku. Keby si mi to mohol vysvetliť ;) :)


Offline

Skúsený užívateľ
Skúsený užívateľ
Rýchle MySQL

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 06.02.2009 21:38

No bez toho sa nezaobídeš. Ak chceš programovať, angličtine sa nevyhneš. Ja som na angličtinu celú školu kašlal (ako aj na všetko ostatné), nikdy ma ani len trochu nezaujímala, ale na čítanie referenčných príručiek som sa niečo musel naučiť. Žiadne drilovanie nad knihou, táto angličtina je naozaj najjednoduchšia s akou som sa kedy stretol.
Keď nevieš angličtinu, tak si pozri aspoň examples (príklady) V tých som sa vždy vyznal lepšie ako vo vysvetleniach.
Čítať syntax by si tiež mal vedieť.


No a aby som nevyzeral ako nejaký užvanený dôchodca, tu je vysvetlenie môjho príkladu. Snáď dobré.

SELECT - to je jasné

user_id, user_email, user_name, paid_sum - názvy stĺpcov v mojich fiktívnych tabulkách, ktoré chcem vytiahnuť

FROM - naznačuje, že ideme definovať, z ktorých tabuliek ideme ťahať

users_tbl INNER JOIN paid_tbl - tu sú tie dve tabulky. Inner join tam je preto, že chcem spárovať nejaké údaje. V prvej tabulke mám užívateľov, základné údaje k nim a tak. V tej druhej tabulke mám napríklad úhrady poplatku za registráciu na portále www.najhorsiportalsveta.sk. V tej druhej tabulke musím mať uložené aj ID užívateľa - to je snáď jasné prečo. Musíš vedieť, kto zaplatil, nestačí vedieť koľko.
INNER JOIN kvôli tomu, že vyťahujem iba užívateľov, ktorí zaplatili.
LEFT JOIN by mi vybralo všetkých užívateľov a v prípade, že v druhej tabulke nie je záznam od tohto užívateľa, bude hodnota paid_sum NULL.

ON user_id=paid_user_id - tu určuješ, ktoré sú tie polia, ktoré sú spoločné.







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
Rýchle MySQL

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 06.02.2009 22:57

Ok, vďaka, už tomu rozumiem, sú ešte nejaké triky na rýchlosť?


Offline

Skúsený užívateľ
Skúsený užívateľ
Rýchle MySQL

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 06.02.2009 23:24

No triky... nie sú nijaké zázračné veci, že keď toto spravíš, tak to bude všetko superrýchle. Treba stále dbať na to, aby si db nezabil niečím, čo nemusí byť tak náročné. Hlavne aby si sa nezacyklil. To sa ti stane, ani nevieš ako. Jedným z dôležitých krokov je rozumné vytváranie indexov.
Aby si si pocvičil tú angličtinu, http://www.mysqlperformanceblog.com/
Inak, dúfam, že som od teba nechytil tú chrípku, mám pocit, že na mňa niečo lezie :D







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
Rýchle MySQL

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 06.02.2009 23:37

Viem, že nič zázračne neexistuje, ale rád by som poznal čo najviac funkcií a príkazov, ktoré zrýchľujú db, aby som nemal problém pri nejakom väčšom projekte.


Offline

Skúsený užívateľ
Skúsený užívateľ
Rýchle MySQL

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 07.02.2009 9:54

radšej sa nepúšťaj do veľkým projektov, kým nebudeš mať dostatok skúseností.

Používaj explain, to ti vypíše info o priebehu query, ktoré robíš. http://dev.mysql.com/doc/refman/5.0/en/explain.html Nie je to nič na zrýchlenie, ale napovie ti, čo sa dá spraviť lepšie.
Potom sa pohraj s cache http://dev.mysql.com/doc/refman/5.1/en/query-cache.html

A potom skúšaj a skúšaj a skúšaj. Sprav si cyklus asi 1000 opakovaní (podľa potreby samozrejme) toho istého query takýmto spôsobom:
Kód:
$query = "bla bla bla";
$start=microtime(1);
for($i=0;$i<1000;$i++){
mysql_query($query);
}
echo microtime(1)-$start;

Vypíše ti to čas, koľko trvalo vykonanie 1000x toho query. Potom môžeš skúšať viac variánt queryčka a porovnávať čas, za ktorý to zbehlo.
Ďalšia vec, nepoužívaj select * from... Vypisuj jednotlivé stĺpce a vyťahuj iba to, čo naozaj z db potrebuješ.
Mohol by som pokračovať donekonečna, ale to sa nedá. Na to musíš prísť sám.







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Skúsený užívateľ
Skúsený užívateľ
Rýchle MySQL

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 07.02.2009 10:55

Toto si si pozeral? http://www.dcs.fmph.uniba.sk/~plachetk/ ... 2008_4.pdf (slajdy 22 až 25)? Na 24. je také porovnanie, aby si tie dva "stromy" pochopil, musíš ich čítať odspodu hore (pán prednášajúci je trochu "neštandardný").







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Rýchle MySQL

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 07.02.2009 13:58

p360t, pozeral som to a nerozumel som tomu. Teraz som si to pozrel a porozumel som strane 22 a 23, aspoň viem ako sa používajú tie bodky v MySQL a ako funguje vyberanie z viacerých db v jednom query.

roobertek, tie veci, ktoré si mi napísal už poznám ;) a explain netuším ako funguje a čo by to malo robiť, keď som to pustil v phpMyAdminovi tak mi to nevypísalo nič dôležité/použiteľné.


Offline

Skúsený užívateľ
Skúsený užívateľ
Rýchle MySQL

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 07.02.2009 15:02

Práveže áno, len to treba vedieť čítať







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
Rýchle MySQL

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 07.02.2009 15:06

A ako sa to teda číta?


Odpovedať na tému [ Príspevkov: 14 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Rychle vybijanie

v Notebooky a netbooky

8

1225

18.09.2012 20:32

dablik415 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Rýchle kontakty

v Sieťové a internetové programy

3

634

15.12.2007 18:18

wili Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. rychle prsty

v JavaScript, VBScript, Ajax

6

773

13.09.2007 21:44

juho Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Rýchle prachy

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Ekonomika, práca, biznis, podnikanie a peniaze

46

6432

02.10.2011 19:50

KocuR Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. rychle vypinanie

v Operačné systémy Microsoft

1

513

26.01.2009 20:42

shark777 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Rýchle vyhladávanie

v Služby a webstránky

1

388

08.05.2018 13:02

liqua1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Rychle blikanie okna

v Operačné systémy Microsoft

3

660

19.03.2017 11:49

JanaZET Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hledám rychlé vyhledávání

v Redakčné systémy

0

943

12.07.2009 7:44

AVAST Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Rýchle ukladanie obrázkov

v Grafické programy

1

1398

06.12.2009 21:22

erikoo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Rýchle spustene zvuku

v Ostatné

7

566

08.01.2011 12:55

beks Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Rychle uvolnenie Ram

v Ostatné programy

7

1579

07.02.2010 2:39

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP - Rýchle správy

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

58

3707

02.01.2010 16:55

achbo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. rychle prepinanie klavesnice

v Operačné systémy Unix a Linux

4

2871

29.09.2009 20:25

Igor Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Rýchle mazanie MP3 tagov

v Audio programy

1

991

26.08.2006 20:02

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Format - normal nebo rychle?

v Pevné disky a radiče

22

4040

30.08.2007 16:22

mkmt Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Rychle zakodovanie celeho disku

v Bezpečnosť a firewally

1

1033

04.02.2008 4:41

Jerry19 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra