Visa ett inlägg
Oläst 2009-08-20, 13:09 #5
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Citat:
Ursprungligen postat av objx
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

Ja , om inte queryn i övrigt är galen kommer den det..

Citat:
Ursprungligen postat av objx

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.
Nej det är inte nödvändigt , tex index2 kan vara onödigt då index1 delvis kommer användas tex vid
SELECT land=x AND stad=x AND pris=x
viket nog ger bra prestanda då endast en scan på "pris" ur resultatet
danjel är inte uppkopplad   Svara med citatSvara med citat