Autor | Zpráva | ||
---|---|---|---|
capricorn Profil |
#1 · Zasláno: 14. 10. 2008, 14:01:22
Zdravim, v tomto vlakne jsem se docetl, ze spojeni s tabulkou, ktera byla vytvorena poddotazem je pomalejsi nez klasicke spojeni. Docela mne tento problem zajima, protoze bych chtel mit db dotazy sviznejsi jako kazdy. ;-) Jak tento problem vyresit, aby rychlost byla stejna.
Pouzit klasicke spojeni a potom zacit data filtrovat nebo to vyresit jinym zpusobem? |
||
Kajman_ Profil * |
#2 · Zasláno: 14. 10. 2008, 15:06:05
Zkuste si explain a pokud se bude databáze v datech šťourat jinak, než si myslíte, že by měla, zkuste dotaz přepsat. Obecně je v mysql většinou pravda, že spojení je rychlejší než "where sloupec in (select...)" (z explain zjistíte, že nepoužije index). Pokud jde však o "spojeni s tabulkou, ktera byla vytvorena poddotazem" - tedy např. "tabulka join (select ... ) as alias", tak tam to indexy asi použije, může-li.
|
||
capricorn Profil |
#3 · Zasláno: 14. 10. 2008, 18:25:14
Kajman_
Je zcela jasne, ze databaze budou svizneji pracovat na serveru nez mne ted na pc, ale chtel jsem si overit, jestli ty dotazy pisi spravne. Ted jsem si s tim nekolik hodin hral a vubec z toho nejsem moudry. Jak poznam z prehledu, ze byly ci nebyly pouzity indexy? Testoval jsem v phpMyAdminu a neni mne zcela jasne, jestli ta doba je v sekundach nebo v milisekundach. Jak je to vlastne s tim casem, je to v sekundach nebo v milisekundach? 1 sekunda ma 1000 milisekund, takze to asi bude v milisekundach, ale radeji ze sebe udelam hlupaka a zeptam se, aby mne to bylo jasne. |
||
Kajman_ Profil * |
#4 · Zasláno: 14. 10. 2008, 21:29:29
Je zcela jasne, ze databaze budou svizneji pracovat na serveru nez mne ted na pc
To jasné být nemusí. Na serveru může být mnohem větší zátěž. Jak poznam z prehledu, ze byly ci nebyly pouzity indexy? Při explain jsou uvedeny ve sloupci key. |
||
capricorn Profil |
#5 · Zasláno: 15. 10. 2008, 15:28:31
Kajman_
To jasné být nemusí. Na serveru může být mnohem větší zátěž. To mate pravdu, ale ja jsem to srovnaval se svoji asi 8 let starou pleckou. ;-) Při explain jsou uvedeny ve sloupci key. Aha, dekuji. |
||
Časová prodleva: 16 let
|
0