Autor Zpráva
capricorn
Profil
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 *
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
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 *
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0