Medlem
|
|
Reg.datum: Mar 2008
Inlägg: 154
|
|
Medlem
Reg.datum: Mar 2008
Inlägg: 154
|
Vad brukar vara det vanligaste sättet att lösa den här typen av problem då?
En idé jag hade var att sätta ett index på de tre kolumner som förekommer flest i villkorssatser, och alltid placera dessa villkor först i queryn.
T.ex:
Om jag skapar ett index för kolumnerna boarea och pris, och jag har en query som ser ut på följande sätt:
SELECT ... FROM ... WHERE boarea > 50 && pris > 1500000 && rum > 3 ... övriga villkor.
Kommer MySQL då att dra nytta av detta index för att begränsa resultatet innan de övriga villkoren vägs in? (t.ex. rum > 3 etc.)
Även om det är på det viset så kan jag inte komma fram till ett bra sätt att lösa detta på.
Säg att det är 8 kolumner ur tabellen som används i 80% av sökningarna.
Måste man bygga upp ett index för varje tänkbar villkorskombination då för att MySQL skall kunna använda ett index vid varje query?
D.v.s:
index1: land, stad, boarea, pris
index2: land, stad, pris
index3: land, boarea, pris
Det låter ju onekligen rätt rörigt.
|