2009-12-10 9 views
10

Es mag eine naive Frage sein, aber ich wundere mich über die Beziehung zwischen Primärschlüssel und Indizes in den meisten gängigen SQL-Datenbanken.Über Index und Primärschlüssel in SQL?

Ist es eine Standardregel für eine SQL-Datenbank, automatisch einen Index für jeden Primärschlüssel zu erstellen?

Ich frage das, weil ich ein Modell mit Django entwerfe und ich frage mich, ob es überflüssig ist, sowohl primary_key=True als auch db_index=True zu setzen.

Antwort

8

Ja, Sie können davon ausgehen, dass es eine Standardregel ist, dass RDBMS einen Index für den Primärschlüssel benötigt.

Hauptsächlich benötigt die Datenbank-Engine den Index, um die Eindeutigkeit der Daten für den Primärschlüssel zu erzwingen, und dies erfordert schnell einen Index.

3

Im MSSQL-Server wird beim Erstellen eines Primärschlüssels normalerweise standardmäßig ein gruppierter Index erstellt.

5

einen Blick haben diese bei

Wenn eine PRIMARY KEY-Einschränkung für eine Datenbanktabelle und kein Clustered-Index besteht derzeit für die Tabelle erstellt wird, SQL Server erstellt automatisch einen gruppierten Index für die Primärschlüssel

von SQL Server Index Tuning

2

In MySQL ist der Primärschlüssel eine Art Index (bestimmter eindeutiger Index).

2

In den meisten RDBMS ist es der Fall, dass ein Primärschlüssel als Index implementiert ist.

Dies ist keine per se, sondern eine (ziemlich) offensichtliche Optimierung.

Verwandte Themen