sql >> Databasteknik >  >> RDS >> Sqlserver

Relationen mellan primärnyckel och klusterindex

En primärnyckel är en logisk koncept – det är den unika identifieraren för en rad i en tabell. Som sådan har den en massa attribut - den kanske inte är null, och den måste vara unik. Naturligtvis, eftersom du sannolikt kommer att söka efter poster med deras unika identifierare, skulle det vara bra att ha ett index på primärnyckeln.

Ett klustrat index är ett fysiskt koncept - det är ett index som påverkar ordningen i vilken poster lagras på disken. Detta gör det till ett mycket snabbt index när du kommer åt data, även om det kan sakta ner skrivningar om din primärnyckel inte är ett sekventiellt nummer.

Ja, du kan ha en primärnyckel utan ett klustrat index - och ibland kanske du vill (till exempel när din primärnyckel är en kombination av främmande nycklar på en sammanfogningstabell och du inte vill ådra dig diskblandningsoverhead när du skriver).

Ja, du kan skapa ett klustrat index på kolumner som inte är en primärnyckel.



  1. Objective-C och MySQL

  2. Ändra mysql användarlösenord med kommandoraden

  3. Producera DISTINCT-värden i STRING_AGG

  4. Base64-kodning och avkodning i oracle