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