Heim >Datenbank >MySQL-Tutorial >Detaillierte Erläuterung der Unterschiede zwischen KEY und PRIMARY KEY sowie UNIQUE KEY und INDEX in MySQL
Was dieser Artikel mit Ihnen teilt, ist der Unterschied zwischen KEY, PRIMARY KEY, UNIQUE KEY und INDEX im MySQL-Index, das heißt, der Unterschied zwischen Primärschlüsselindex, Unique Index und gewöhnlichem Index.
Zur Frage: Die aufgeworfenen Probleme können Schritt für Schritt aufgeschlüsselt und gelöst werden. KEY und INDEX sind in MySQL synonym. Dann kann dieses Problem auf den Unterschied zwischen PRIMARY KEY, UNIQUE KEY und INDEX vereinfacht werden. Und diese drei sind genau die Unterteilungen von Indizes, Primärschlüsselindex, eindeutiger Index und gewöhnlicher Index (INDEX).
Verwenden Sie INDEX, um das Lesen von Daten aus der Datenbank zu beschleunigen. INDEX wird diesen Spalten normalerweise in JOIN-, WHERE- und ORDER BY-Klauseln hinzugefügt.
Beim Erstellen eines Index müssen Sie sicherstellen, dass der Index eine Bedingung ist, die auf die SQL-Abfrageanweisung angewendet wird (normalerweise als Bedingung der WHERE-Klausel). Tatsächlich ist der Index auch eine Tabelle, die die Primärschlüssel- und Indexfelder speichert und auf die Datensätze der Entitätstabelle verweist.
Der Index hat auch seine Nachteile: Obwohl der Index die Abfragegeschwindigkeit erhöht, verringert er die Geschwindigkeit der Aktualisierung der Tabelle, z. B. INSERT, UPDATE und DELETE in der Tabelle. Denn beim Aktualisieren der Tabelle muss MySQL nicht nur die Daten, sondern auch die Indexdatei speichern.
Der Unterschied zwischen KEY und INDEX in MySQL
KEY ist normalerweise ein Synonym für INDEX. PRIMARY KEY kann auch nur dann als KEY angegeben werden, wenn das Schlüsselwortattribut PRIMARY KEY in der Spaltendefinition angegeben ist. Dies geschieht aus Kompatibilitätsgründen mit anderen Datenbanksystemen. PRIMÄRSCHLÜSSEL ist ein eindeutiger SCHLÜSSEL. Zu diesem Zeitpunkt müssen alle Schlüsselspalten als NICHT NULL definiert sein. Wenn diese Spalten nicht explizit als NOT NULL definiert sind, sollte MySQL diese Spalten implizit definieren.
KEY ist der Schlüsselwert, der Teil der relationalen Modelltheorie ist, wie z. B. Primärschlüssel (PRIMARY KEY), Fremdschlüssel (Foreign KEY) usw., der für die Datenintegritätsprüfung und Eindeutigkeitsbeschränkungen usw. verwendet wird . INDEX befindet sich auf der Implementierungsebene. Sie können beispielsweise einen Index für jede Spalte einer Tabelle erstellen. Wenn sich die indizierte Spalte dann in der SQL-Anweisung befindet, können Sie eine schnelle Datenlokalisierung und damit einen schnellen Abruf erhalten. Bei UNIQUE INDEX handelt es sich nur um einen Typ von INDEX. Die Einrichtung von UNIQUE INDEX bedeutet, dass die Daten in dieser Spalte meiner Meinung nach den Index vom Typ UNIQUE INDEX weiter optimieren können.
Daher muss sich der SCHLÜSSEL beim Entwerfen der Tabelle nur auf Modellebene befinden, und wenn eine Abfrageoptimierung erforderlich ist, können Indizes für die relevanten Spalten erstellt werden.
SCHLÜSSEL
SCHLÜSSEL ist die physische Struktur der Datenbank, die zwei Bedeutungsebenen enthält. Eine davon sind Einschränkungen, die sich auf die Einschränkung und Standardisierung der strukturellen Integrität konzentrieren Die andere ist eine Hilfsabfrage.
•Der Primärschlüssel hat zwei Funktionen, die zur Standardisierung des Speicherprimärschlüssels und der Eindeutigkeit verwendet werden, aber auch einen Index für diesen Schlüssel erstellen.
•Eindeutiger Schlüssel hat auch zwei Funktionen. Dies regelt die Einzigartigkeit der Daten, erstellt aber auch einen Index für diesen Schlüssel.
Fremdschlüssel haben auch zwei Funktionen: Eine davon ist die Einschränkung, die die Einzigartigkeit der Daten regelt, für die jedoch auch ein Index erstellt wird Schlüssel;
Es ist ersichtlich, dass der Schlüssel sowohl die Bedeutung von Einschränkung als auch von Index hat.
INDEX
INDEX ist auch die physische Struktur von Die Datenbank dient jedoch nur als Hilfsabfrage. Sie belegt beim Erstellen zusätzlichen Speicherplatz. Indizes werden in Präfixindizes, Volltextindizes usw. unterteilt. Ein Index ist nur ein Index und schränkt das Verhalten indizierter Felder nicht ein.
Der Unterschied zwischen PRIMARY KEY und UNIQUE KEY
PRIMARY KEYs (Primärschlüssel) und UNIQUE KEYs (eindeutige Schlüsseleinschränkungen) sind normalerweise eine Spalte. Es ist aber auch möglich, dass mehrere Spalten normalerweise eine Datenzeile (Zeile) bestimmen. Eine Tabelle kann nur einen PRIMÄRSCHLÜSSEL, aber viele EINZIGARTIGE SCHLÜSSEL haben. Wenn eine Spalte auf UNIQUE KEY festgelegt ist, können in dieser Spalte keine zwei Zeilen dieselben Daten enthalten. PRIMARY KEY erlaubt keine NULL-Werte, UNIQUE KEY jedoch.
Ändern Sie die Tabelle`ALTER TABLE table_name ADD PRIMARY KEY(column_name, …)
Zusammenfassung, die gleichen Punkte:
• PRIMARY KEY und UNIQUE KEY werden beide verwendet, um sicherzustellen, dass die Daten in der Spalte ein Prototyp sind
• Beide können in einer Spalte sein. Oder Sie können
zu mehreren Spalten hinzufügen:
•Es kann nur einen PRIMÄRSCHLÜSSEL in derselben Tabelle geben, und es können mehrere EINZIGARTIGE SCHLÜSSEL vorhanden sein
•
PRIMARY KEY darf keine Nullwerte haben, UNIQUE KEY Ja. Wenn eine oder mehrere Spalten des PRIMARY KEY NULL sind, werden die Spalten beim Erhöhen des PRIMARY KEY automatisch in NOT NULL geändert. UNIQUE KEY stellt keine Anforderungen an Spalten und wird über einen Referenzindex implementiert. Wenn die eingefügten Werte alle NULL sind, werden gemäß dem Prinzip des Index nicht alle NULL-Werte im Index aufgezeichnet, also beim Einfügen Alle NULL-Werte, es kann Duplikate geben. Andere können keine doppelten Werte einfügen.
Tabelle t hinzufügen Einschränkung uk_t_1 UNIQUE (a,b); in t (a ,b )-Werte einfügen (null,1); # Kann nicht wiederholt in t (a ,b )-Werte eingefügt werden (null,null );#Kann wiederholt werden
In MySQL hat MySQL für eine PRIMARY KEY-Spalte automatisch einen EINZIGARTIGEN INDEX dafür eingerichtet, und es besteht keine Notwendigkeit, wiederholt einen Index dafür zu erstellen.
Eine Erklärung zu PRIMARY KEY und UNIQUE INDEX im Internet:
Beachten Sie, dass „PRIMARY“ PRIMARY KEY und nicht INDEX heißt.
KEY ist etwas auf der logischen Ebene, beschreibt Ihr Tabellen- und Datenbankdesign (d. h. erzwingt die referenzielle Integrität …)
INDEX ist etwas auf der Auf physischer Ebene wird die Zugriffszeit für Tabellenoperationen verbessert.
Hinter jedem PK wird (normalerweise) EINZIGARTIGER INDEX erstellt. 🎜>Das Erstellen von Indexdateien nimmt Speicherplatz in Anspruch. CREATE INDEX IndexName ON mytable(username(length));
Wenn es vom Typ CHAR und VARCHAR ist, kann die Länge kleiner sein als die tatsächliche Länge des Feldes; wenn es vom Typ BLOB und TEXT ist, kann die Länge geringer sein muss angegeben werden. Index beim Erstellen der Tabelle erstellen:
Index löschen
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Unterschiede zwischen KEY und PRIMARY KEY sowie UNIQUE KEY und INDEX in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!