wake-up-neo.net

Unterschied zwischen Schlüssel, Primärschlüssel, eindeutigem Schlüssel und Index in MySQL

Wann sollte ich KEY, PRIMARY KEY, UNIQUE KEY und INDEX?

235
HELP

KEY und INDEX sind Synonyme in MySQL. Sie meinen das Gleiche. In Datenbanken würden Sie Indizes verwenden, um die Geschwindigkeit des Datenabrufs zu verbessern. Ein Index wird normalerweise für Spalten erstellt, die in den Klauseln JOIN, WHERE und ORDER BY Verwendet werden.

Stellen Sie sich vor, Sie haben eine Tabelle mit dem Namen users und möchten nach allen Benutzern suchen, die den Nachnamen 'Smith' haben. Ohne einen Index müsste die Datenbank alle Datensätze der Tabelle durchgehen. Dies ist langsam, da je mehr Datensätze Sie in Ihrer Datenbank haben, desto mehr Arbeit ist erforderlich, um das Ergebnis zu finden. Auf der anderen Seite hilft ein Index der Datenbank, schnell zu den relevanten Seiten zu springen, auf denen die "Smith" -Datensätze gespeichert sind. Dies ist sehr ähnlich zu der Vorgehensweise, mit der wir Menschen ein Telefonbuchverzeichnis durchsuchen, um jemanden mit dem Nachnamen zu finden: Wir beginnen nicht, das Verzeichnis von Anfang bis Ende zu durchsuchen, solange wir die Informationen in einer Reihenfolge einfügen, die wir können Mit können Sie schnell zu den S-Seiten springen.

Primärschlüssel und eindeutige Schlüssel sind ähnlich. Ein Primärschlüssel ist eine Spalte oder eine Kombination von Spalten, mit denen eine Zeile eindeutig identifiziert werden kann. Es ist ein Sonderfall von eindeutiger Schlüssel . Eine Tabelle kann höchstens einen Primärschlüssel, aber mehr als einen eindeutigen Schlüssel haben. Wenn Sie einen eindeutigen Schlüssel für eine Spalte angeben, dürfen keine zwei unterschiedlichen Zeilen in einer Tabelle denselben Wert haben.

Beachten Sie auch, dass Spalten, die als Primärschlüssel oder eindeutige Schlüssel definiert sind, in MySQL automatisch indiziert werden.

287
Daniel Vassallo

KEY und INDEX sind Synonyme.

Sie sollten einen Index hinzufügen, wenn Leistungsmessungen und EXPLAIN anzeigen, dass die Abfrage aufgrund eines fehlenden Index ineffizient ist. Das Hinzufügen eines Index kann die Leistung von Abfragen verbessern (Änderungen an der Tabelle können jedoch verlangsamt werden).

Sie sollten UNIQUE verwenden, wenn Sie möchten, dass die Werte in dieser Spalte (oder diesen Spalten) eindeutig sind, damit der Versuch, doppelte Werte einzufügen, zu einem Fehler führt.

Ein PRIMARY KEY ist sowohl eine eindeutige Einschränkung als auch impliziert, dass die Spalte NICHT NULL ist. Es wird verwendet, um jeder Zeile eine Identität zu geben. Dies kann nützlich sein, um eine Verknüpfung mit einer anderen Tabelle über eine Fremdschlüsseleinschränkung herzustellen. Es ist zwar nicht erforderlich, dass eine Tabelle einen PRIMARY KEY hat, aber normalerweise ist dies eine gute Idee.

54
Mark Byers

Primärschlüssel erlaubt keine NULL Werte, aber eindeutige Schlüssel erlaubt NULL Werte.

Wir können nur einen Primärschlüssel in einer Tabelle deklarieren, aber eine Tabelle kann mehrere eindeutige Schlüssel (Spaltenzuweisung).

43
Er.Gaurav singh

PRIMARY KEY UND UNIQUE KEY sind ähnlich, außer dass sie unterschiedliche Funktionen haben. Der Primärschlüssel macht die Tabellenzeile eindeutig (d. H. Es können nicht zwei Zeilen mit genau demselben Schlüssel vorhanden sein). Sie können nur einen Primärschlüssel in einer Datenbanktabelle haben.

Der eindeutige Schlüssel macht die Tabellenspalte in einer Tabellenzeile eindeutig (d. H., Keine 2-Tabellenzeile kann denselben exakten Wert haben). Sie können mehr als eine eindeutige Schlüsseltabellenspalte haben (im Gegensatz zum Primärschlüssel bedeutet dies, dass nur eine Tabellenspalte in der Tabelle eindeutig ist).

INDEX schafft auch Eindeutigkeit. MySQL (Beispiel) erstellt eine Indextabelle für die indizierte Spalte. Auf diese Weise ist es einfacher, den Tabellenzeilenwert abzurufen, wenn die Abfrage für diese indizierte Tabellenspalte ausgeführt wird. Der Nachteil ist, dass MySQL bei vielen Aktualisierungen/Löschungen/Erstellungen die Indextabellen verwalten muss (und dies kann ein Leistungsengpass sein).

Hoffe das hilft.

16
Buhake Sindi

Eindeutige Schlüssel: Die Spalten, in denen keine zwei Zeilen ähnlich sind

Primärschlüssel: Sammlung einer minimalen Anzahl von Spalten, die jede Zeile in einer Tabelle eindeutig identifizieren können (d. H. Keine zwei Zeilen sind in allen Spalten, die den Primärschlüssel bilden, ähnlich). Eine Tabelle kann mehrere Primärschlüssel enthalten. Wenn ein eindeutiger Schlüssel vorhanden ist, ist er der Primärschlüssel (nicht der Primärschlüssel) in der Tabelle. Wenn es keinen eindeutigen Schlüssel gibt, sind mehrere Spaltenwerte erforderlich, um eine Zeile zu identifizieren, wie sie in einigen Tabellen als Primärschlüssel verwendet werden kann (Vorname, Nachname, Vatername, Muttername).

Index: Wird zur Optimierung der Abfragen verwendet. Wenn Sie die Ergebnisse mehrmals nach einer bestimmten Spalte durchsuchen oder sortieren möchten (z. B. werden die Schüler meistens nach Namen und nicht nach der Rollennummer durchsucht), können Sie die Spaltenwerte optimieren, indem Sie "Alle" auswählen. indexiert "zum Beispiel mit einem binären Baumalgorithmus.

10
Ashwini Dhekane

Primärschlüssel - Wir können nur einen Primärschlüssel für eine Tabelle in eine Tabelle einfügen und diese Spalte darf beim Eingeben der Werte in die Tabelle nicht leer bleiben.

Eindeutiger Schlüssel - Wir können mehr als einen eindeutigen Schlüssel in eine Tabelle einfügen und diese Spalte möglicherweise leer lassen, wenn wir die Werte in die Tabelle eingeben. Die Spalte hat eindeutige Werte (nicht dieselben), als der Primär- und der eindeutige Schlüssel angewendet wurden.

7
VIKASH

Der Primärschlüssel wird zum Arbeiten mit verschiedenen Tabellen verwendet. Dies ist die Grundlage für relationale Datenbanken. Wenn Sie eine Buchdatenbank haben, ist es besser, 2 Tabellen zu erstellen - 1) Bücher und 2) Autoren mit dem INT-Primärschlüssel "id". Dann verwenden Sie id in Büchern anstelle des Autornamens.

Der eindeutige Schlüssel wird verwendet, wenn Sie keine wiederholten Eingaben wünschen. Sie haben möglicherweise einen Titel in Ihrer Buchtabelle und möchten sichergehen, dass für jeden Titel nur ein Eintrag vorhanden ist.

5
irudyak

Eindeutiger Schlüssel:

  1. Mehr als ein Wert kann null sein.
  2. Keine zwei Tupel können im eindeutigen Schlüssel dieselben Werte haben.
  3. Ein oder mehrere eindeutige Schlüssel können zu einem Primärschlüssel kombiniert werden, nicht jedoch umgekehrt.

Primärschlüssel

  1. Kann mehr als einen eindeutigen Schlüssel enthalten.
  2. Stellt ein Tupel eindeutig dar.
2
Pritam Banerjee