[ Príspevkov: 14 ] 
AutorSpráva
Offline

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

Registrovaný: 26.11.06
Prihlásený: 09.10.24
Príspevky: 4118
Témy: 319 | 319
Bydlisko: HE/BA
NapísalOffline : 06.02.2009 13:17 | Rýchle MySQL

Č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 | 51
Bydlisko: Bratislava
NapísalOffline : 06.02.2009 14:09 | Rýchle MySQL

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ý: 09.10.24
Príspevky: 4118
Témy: 319 | 319
Bydlisko: HE/BA
Napísal autor témyOffline : 06.02.2009 15:14 | Rýchle MySQL

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 | 96
NapísalOffline : 06.02.2009 21:17 | Rýchle MySQL

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ý: 09.10.24
Príspevky: 4118
Témy: 319 | 319
Bydlisko: HE/BA
Napísal autor témyOffline : 06.02.2009 21:21 | Rýchle MySQL

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 | 96
NapísalOffline : 06.02.2009 21:38 | Rýchle MySQL

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ý: 09.10.24
Príspevky: 4118
Témy: 319 | 319
Bydlisko: HE/BA
Napísal autor témyOffline : 06.02.2009 22:57 | Rýchle MySQL

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 | 96
NapísalOffline : 06.02.2009 23:24 | Rýchle MySQL

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ý: 09.10.24
Príspevky: 4118
Témy: 319 | 319
Bydlisko: HE/BA
Napísal autor témyOffline : 06.02.2009 23:37 | Rýchle MySQL

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 | 96
NapísalOffline : 07.02.2009 9:54 | Rýchle MySQL

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 | 35
Bydlisko: BA - WESTSIDE
NapísalOffline : 07.02.2009 10:55 | Rýchle MySQL

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ý: 09.10.24
Príspevky: 4118
Témy: 319 | 319
Bydlisko: HE/BA
Napísal autor témyOffline : 07.02.2009 13:58 | Rýchle MySQL

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 | 96
NapísalOffline : 07.02.2009 15:02 | Rýchle MySQL

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ý: 09.10.24
Príspevky: 4118
Témy: 319 | 319
Bydlisko: HE/BA
Napísal autor témyOffline : 07.02.2009 15:06 | Rýchle MySQL

A ako sa to teda číta?


 [ Príspevkov: 14 ] 


Rýchle MySQL



Podobné témy

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

Rýchle kontakty

v Sieťové programy

3

763

15.12.2007 18:18

wili

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 Diskusia

46

8147

02.10.2011 19:50

KocuR

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

rychle vypinanie

v Windows

1

632

26.01.2009 20:42

shark777

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

Rýchle vyhladávanie

v Internet, služby a sociálne siete

1

503

08.05.2018 13:02

liqua1

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

rychle prsty

v Frontend

6

868

13.09.2007 21:44

juho

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

Rychle vybijanie

v Notebooky a netbooky

8

1347

18.09.2012 20:32

dablik415

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

Rychle uvolnenie Ram

v Ostatné programy

7

1671

07.02.2010 2:39

shiro

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 Backend

58

3898

02.01.2010 16:55

achbo

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

rychle prepinanie klavesnice

v Unix-like systémy

4

2970

29.09.2009 20:25

Igor

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

Hledám rychlé vyhledávání

v CMS

0

1030

12.07.2009 7:44

AVAST

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

Rýchle ukladanie obrázkov

v Grafické programy

1

1488

06.12.2009 21:22

erikoo

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

Rychle blikanie okna

v Windows

3

808

19.03.2017 11:49

JanaZET

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

Rýchle spustene zvuku

v Ostatné

7

669

08.01.2011 12:55

beks

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

Rýchle mazanie MP3 tagov

v Audio programy

1

1100

26.08.2006 20:02

JanoF

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

PC RYCHLE do 400€

v PC zostavy

14

873

04.02.2009 11:53

mimkork

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

Format - normal nebo rychle?

v Pevné disky a radiče

22

4252

30.08.2007 16:22

mkmt



© 2005 - 2026 PCforum, edited by JanoF