Medlem
|
|
Reg.datum: Feb 2004
Inlägg: 248
|
|
Medlem
Reg.datum: Feb 2004
Inlägg: 248
|
Alltså, att ha flera index och flera nycklar per index kan vara väldigt nyttigt på rätt ställe.
MySQL använder indexnycklarna från vänster till höger, alltså om du har ett index på id, firstname, lastname så funkar indexet på en query använder bara id, id och firstname eller alla tre.
Om du t.ex. har en mailtabell med ett fält som heter deleted där du flaggar om mailet är raderat eller inte så kan det vara en bra idé att ha ett index på to_user, deleted eftersom du gärna vill SELECT ... FROM mail WHERE to_user=mittuserid AND deleted=0.
Låt säg att du i detta fallet bara har indexerat på to_user och användaren har 20.000 raderade mail så letar mysql iallafall igenom alla rader inkl de 20.000.
Ett exempel där det kan vara nyttigt att ha flera index är t.ex. i en sök-tabell där man kan välja att söka på ett flertal parametrar och utelämna vissa.
T.ex. söka på del av användarnamn, kön, ålder och län eller bara t.ex. söka på kön.
Då kan du omöjligt få ihop ett index som funkar left-to-right utan får göra flera index.
|