OT: Optimalizace selectu v MySQL
RV
vicek.radek@cpost.cz
Pondělí Červen 25 14:09:57 CEST 2007
Zdravim,
chtel bych se zeptat na zdanlive banalitu, ale pokud se clovek ma
prokousavat stohy dokumentace k MySQL zvlast pokud mam dojem, ze zrovna
toto je pred free usery celkem zakukleno.
Mam DB kde je pole typu datetime plus nejake dalsi nepodstatna pole a
tento datetime je primarnim klicem cele tabulky.
Vetsina selectu je prave na vyber podle tohoto pole (potrebuji vratit
zaznamy odpovidajici nejakemu rozpeti datumu). A to je ten kamen urazu
co ted resim.
Z pocatku kdy zaznamy nebylo moc to nebylo na poradu dne, ale ted se to
stava neunosne. Pred cca 14 dny jsem delal nejake testy a nejsem z toho
moudry.
momentalne selektuji naprosto debilne (tady se index neuplatni):
WHERE Day(datum)=25 AND Month(datum)=6 AND Year(datum)=2007
nejlepsi vysledky daval nasledujici dotaz (ale i zda server pise ze se
index pouziva jen castecne):
WHERE datum=>'2007-06-25 0:00:00' AND datum<'2007-06-26 0:00:00'
i tento dotaz na muj vkus trva celkem dlouho - radove 0.1s z celkem
400.000 zaznamu.
Nemat enekdo nejaky tip jak se s tim koser vyporadat? Na Sybase ASE to
funguje korektne a dotaz je prakticky nemeritelnej.
Jeste dotaz - nevite nekdo jak vynuluji ty behove hodnoty serveru, kde
ukazuje statistiky ruznych prochazeni tabulek a pod.
--
Radek Vicek
Další informace o konferenci Hw-list