Autor | Zpráva | ||
---|---|---|---|
Kcko Profil |
#1 · Zasláno: 4. 5. 2010, 16:47:43 · Upravil/a: Kcko
Ahoj,
mam tu takovyto pomerne trivialni dotaz SELECT COUNT(1) total_rows FROM data WHERE (IDATE >= 20100414) AND (IDATE <= 20100415) AND MASTER_CHANNEL_ID = 3 AND Q6 IN (9, 10) UNION ALL SELECT COUNT(1) total_rows FROM data WHERE (IDATE >= 20100414) AND (IDATE <= 20100415) AND MASTER_CHANNEL_ID = 3 AND Q6 IN (7, 8) UNION ALL SELECT COUNT(1) total_rows FROM data WHERE (IDATE >= 20100414) AND (IDATE <= 20100415) AND MASTER_CHANNEL_ID = 3 AND Q6 <= 7 Index byl puvodne vytvoreny jako (IDATE+MASTER_CHANNEL_ID) - nepouzije se Tak jsem to rozhodil na 2 jednotlive indexy - nepouzije se takze to musim nutit pomoci FORCE INDEX Nema pro to nekdo logicke vysvetleni? Nejak to nechapu (IDATE = dat. typ. INT, MASTER_CHANNEL_ID = SMALLINT) Diky za snahu Edit: Ted jsem prohodil slouceny index IDATE+MASTER_CHANNEL_ID na => MASTER_CHANNEL_ID + IDATE a uz to vybira z mnoziny, ze ktere to vybirat ma. Nechapu :-) Kajmane? |
||
Kajman_ Profil * |
#2 · Zasláno: 5. 5. 2010, 09:55:42
Asi plánovači přijde, že prvotní omezení díky master_channel_id je pro něj výhodnější. V idate je hodně velký interval datumů? Většinou se bere v potaz i četnost a rozložení hodnot v indexovaném sloupci.
Možná se pletu, ale dobře kombinovat jednotlivé indexy možná umí mysql až v nějakých posledních verzích. |
||
Kcko Profil |
#3 · Zasláno: 5. 5. 2010, 12:57:10
Kajman:
v IDATE jsou zatim cca 5 ruznych hodnot, ale bude jich tam N* pak. Jednotlive indexy - ano, jen jsem to zkousel. Proste moc nechapu slouceni 2 indexu kdyz u obou kombinaci plati pravidlo zleva-doprava. Oba jsou splneny a v jednom pripade to vezme a druhy ne. Slo mi o to, pochopit proc se tak deje. Kazdopadne dik. |
||
Kajman_ Profil * |
#4 · Zasláno: 5. 5. 2010, 13:05:56
Když vybíráš 2 z pěti hodnot v idate (a ještě budou hodně četné), tak si mysql může myslet, že tam index moc využitelný nebude. Když budeš mít v idate časem více datumů, je pravděpodobné, že se stane index využívaným.
|
||
Kcko Profil |
#5 · Zasláno: 5. 5. 2010, 14:25:33
Aha to je zajimave, (stejne to asi "ZFORCUJU"), data ted tolik nemam a pak nemuzu do bezici aplikace uz moc sahat. Diky.
|
||
Časová prodleva: 14 let
|
0