Avatar billede razmuz_dk Nybegynder
18. maj 2005 - 15:51 Der 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).

mvh. Rasmus
Avatar billede busschou Praktikant
18. maj 2005 - 15:54 #1
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
Avatar billede arne_v Ekspert
18. maj 2005 - 15:56 #2
primary key er altid unique

primary key har altid et index så et eksplicit index er overflødigt
Avatar billede arne_v Ekspert
18. maj 2005 - 15:57 #3
et unikt index er et index

hvis man kunne sætte unik på uden et index så vill en INSERT skulle løbe
alle rækker igennem og checker for duplikater - ikke godt for performance
Avatar billede jakobgt Nybegynder
18. maj 2005 - 22:35 #4
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.
Avatar billede arne_v Ekspert
21. maj 2005 - 10:05 #5
svar fra mig
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester