10. februar 2007 - 15:57Der er
13 kommentarer og 1 løsning
mySQL: forkert index?
Jeg har en tabel med denne syntaks:
CREATE TABLE users ( username varchar(15) NOT NULL, password varchar(15) NOT NULL, PRIMARY KEY (username), INDEX (username,password) );
Når jeg I phpmyadmin kigger på strukturen for denne tabel, får jeg denne besked: PRIMARY og INDEX nøgler burde ikke begge være sat for kolonne `username`
og jeg kan heller ikke se pointen i det index - det vil være godt til at slå en bruger og password op, hvis man tillader flere brugere med samme username, men det gør man jo nok ikke
Min opfattelse af index er, at hvis man har et felt som er et index, så gør det søgetiden hurtigere. Da jeg ved, at jeg i min kode kommer til at skulle sige: WHERE username="brugernavn" && password="kodeord" tænkte jeg, at det nok var smart at lave index på disse to, så det vil blive hurtigere af finde disse. Hvor meget af dette er forkert?
Du kan nøjes med din primærnøgle, der bruges af dit sql-udtryk til at finde den rigtige brugers række. Der er ingen ekstra gevinst ved at have index på password, da du allerede har den rigtige række.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.