18. maj 2005 - 15:51Der er
3 kommentarer og 2 løsninger
Primary/Unique/Index
Mit spørgsmål er simpelt. Hvad bør man have hhv. primary, unique, index på?
Det er klart, at det formentlig kræver et meget lang svar for at jeg skal forstå det fuldt ud - men hvis i bare forklarer det i grove træk vil jeg blive glad.
Tillægsspørgsmål: :) Jeg er klar over at man som regel smider primary på sin id-kolonne - men hvorfor ikke unique?
Desuden siger min phpmyadmin nu "PRIMARY and INDEX keys should not both be set for column `id`" efter at jeg har sat både INDEX og PRIMARY på id-kolonnen. Hvorfor ikke begge? (den skal jo være primær (primary) OG hurtig-søgebar (index).
Følger lige med for en god forklaring. Kunne det ikke tænkes at Primary automatisk er hurtig søgbar og derfor index overflødig Samt Unique blot siger at feltet skal være unikt, uden ens forekomster. Men ikke nødvendigvis indekseret
Index gør det hurtigere at "slå op" på den kolonne, idet MySQL (mener jeg) beholder referencerne til rækkerne i hukommelsen. Uden index skal den til at søge på harddisken, som ikke er så godt for performance. Dvs. hvis du ofte søger efter år i en kalender-tabel, er det smart at have et index på år.
Unik siger vist sig selv.
primary er både unik og index. Det sættes (ofte) på den første kolonne med autonumerering, ganske som du skriver med id.
Bemærk at man godt kan have index eller unik på flere kolonner.
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.