Visa ett inlägg
Oläst 2007-05-20, 22:55 #3
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Databasmotorn kommer använda det index som är "bäst" för att lösa din fråga. Om vi fortsätter på telefonboksexemplet, men modifierar det så det blir relevant och liknar din frågeställning så tänk dig att du har en tabell med kolumnerna EFTERNAMN, FÖRNAMN och NUMMER. Ditt index är på "EFTERNAMN, FÖRNAMN". Detta innbär att indexet är sorterat på i första hand efternamn och i andra hand förnamn. Precis som i telefonkatalogen.

Om du nu skall göra en sökning efter "Andersson, Anders" så är indexet självklart värdefullt. Även när du söker på "Andersson" blir ditt index värefullt eftersom det i första hand är sorterat på eftersnamn.

men om du sitället bara vill söka efter "Anders" så inser du (med telefonboksliknelsen) att indexet är värdelöst eftersom du måste titta igenom hela telefonkatalogen för att hitta alla som heter "Anders" eftersom soreteringen på efternamn inte tillför något.

Lösningen är flera index. Antingen kompletterar du med ett till index för bara FÖRNAMN om vi fortsätter med exemplet eller så har du ett på abar EFTERNAMN och ett på bara FÖRNAMN. Beror ju på om de två kolumnerna i praktiken verkligen är en unik nyckel eller inte.
eg0master är inte uppkopplad   Svara med citatSvara med citat