Das im Titel angesprochene Problem lässt sich schrittweise zerlegen und lösen. In MySQL sind KEY und INDEX Synonyme. Dann kann diese Frage auf den Unterschied zwischen PRIMARY KEY, UNIQUE KEY und INDEX vereinfacht werden. Dies 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 normalerweise zu den Spalten der Klauseln JOIN, WHERE und ORDER BY hinzugefügt. Beim Erstellen eines Index müssen Sie sicherstellen, dass der Index auf die SQL-Abfrageanweisung angewendet wird (normalerweise als Bedingung der WHERE-Klausel). Tatsächlich ist der Index auch eine Tabelle, die den Primärschlüssel und die Indexfelder speichert und auf die Datensätze der Entitätstabelle verweist. Indizes haben jedoch auch ihre Nachteile: Obwohl Indizes die Abfragegeschwindigkeit erhöhen, verlangsamen sie Tabellenaktualisierungen wie INSERT, UPDATE und DELETE. Denn beim Aktualisieren einer 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 als KEY angegeben werden, wenn das Schlüsselwortattribut PRIMARY KEY in der Spaltendefinition angegeben ist. Dies geschieht aus Kompatibilitätsgründen mit anderen Datenbanksystemen. PRIMARY KEY ist ein eindeutiger SCHLÜSSEL. In diesem Fall müssen alle Schlüsselwortspalten als NOT NULL definiert werden. Wenn die Spalten nicht explizit als NOT NULL definiert sind, sollte MySQL sie implizit definieren. KEY oder Schlüsselwert ist Teil der relationalen Modelltheorie, wie beispielsweise Primärschlüssel (PRIMARY KEY), Fremdschlüssel (Foreign KEY) usw., die zur Prüfung der Datenintegrität und Eindeutigkeitsbeschränkung usw. verwendet werden. INDEX befindet sich auf der Implementierungsebene. Sie können beispielsweise einen Index für jede Spalte in einer Tabelle erstellen. Wenn sich die indizierte Spalte dann in der Where-Bedingung einer SQL-Anweisung befindet, können Sie Daten schnell finden und abrufen. Was UNIQUE INDEX betrifft, handelt es sich lediglich um einen INDEX-Typ. Das Erstellen eines UNIQUE INDEX gibt an, dass die Daten in dieser Spalte nicht wiederholt werden können. Ich vermute, dass MySQL weitere spezielle Optimierungen für Indizes vom Typ UNIQUE INDEX vornehmen kann. Daher muss beim Entwerfen einer Tabelle der SCHLÜSSEL nur auf Modellebene vorhanden sein, und wenn eine Abfrageoptimierung erforderlich ist, können Indizes für die relevanten Spalten erstellt werden. SCHLÜSSEL KEY ist die physische Struktur der Datenbank und hat zwei Bedeutungen. Eine davon ist Constraint, bei dem es darum geht, die strukturelle Integrität der Datenbank einzuschränken und zu regulieren; die andere ist Index, der bei der Abfrage hilft. Es ist ersichtlich, dass der Schlüssel sowohl die Bedeutung einer Einschränkung als auch eines Index hat. INDEX INDEX ist ebenfalls eine physische Struktur der Datenbank, dient jedoch nur als Hilfsabfrage und nimmt bei seiner Erstellung zusätzlichen Speicherplatz ein. Indizes werden in Präfixindizes, Volltextindizes usw. unterteilt. Ein Index ist nur ein Index und schränkt das Verhalten des indizierten Felds nicht ein. Der Unterschied zwischen PRIMARY KEY und UNIQUE KEY PRIMARY KEYs und UNIQUE KEYs sind ähnlich. Ein PRIMARY KEY ist normalerweise eine einzelne Spalte, kann aber auch mehrere Spalten umfassen und bestimmt normalerweise eine Datenzeile. Eine Tabelle kann nur einen PRIMÄRSCHLÜSSEL, aber mehrere EINDEUTIGE SCHLÜSSEL haben. Wenn eine Spalte als UNIQUE KEY festgelegt ist, können keine zwei Zeilen dieselben Daten in der Spalte haben. PRIMARY KEY lässt keine NULL-Werte zu, UNIQUE KEY jedoch schon. Zusammenfassend die Ähnlichkeiten: Unterschiede: alter table t add constraint uk_t_1 UNIQUE(a,b); insert into t(a,b) values (null,1); # kann nicht wiederholt werden insert into t(a,b) values (null,null); # kann wiederholt werden In MySQL hat MySQL für eine PRIMARY KEY-Spalte automatisch einen UNIQUE INDEX erstellt, sodass es nicht nötig ist, erneut einen Index dafür zu erstellen. Eine Erklärung im Internet zu PRIMARY KEY und UNIQUE INDEX: Beachten Sie, dass „PRIMARY“ PRIMARY KEY und nicht INDEX heißt. Vorgangsindex Das Erstellen eines Indexes beansprucht Speicherplatz für Indexdateien. Beim Typ CHAR oder VARCHAR kann die Länge kleiner sein als die tatsächliche Länge des Felds; beim Typ BLOB oder TEXT muss die Länge angegeben werden. Erstellen Sie beim Erstellen einer Tabelle einen Index: TABELLE ERSTELLEN meineTabelle( ID INT NICHT NULL, Benutzername VARCHAR(15) NOT NULL, INDEX [INDEXName] (Benutzername (Länge)) ); Löschen eines Indexes
Das könnte Sie auch interessieren:
|
<<: So öffnen Sie den Port in Centos7
>>: Beispiele für die Verwendung von React Ref
Faltdisplay mit mehrzeiligem Textbaustein Falten ...
In diesem Artikel wird der spezifische Code von j...
Vor Kurzem wurde ein System bereitgestellt, das n...
Die Konvertierung zwischen Zeit, Zeichenfolge und...
Inhaltsverzeichnis 1. Erstellen Sie ein Redis-Doc...
Vorwort: Letzten Sonntag bat mich ein Senior, ihm...
1. Erstellen Sie eine Datenbank 2. Erstellen Sie ...
Vorwort Dieser Artikel stellt hauptsächlich den r...
Die Verwendung von Schriftarten im Web ist sowohl ...
Inhaltsverzeichnis Umfeld Version der virtuellen ...
Vorwort: Manchmal ist der Hauptteil einer Route d...
Inhaltsverzeichnis Warum brauchen wir Docker? Bei...
1. Firewall-Regeln festlegen Beispiel 1: Port 808...
Dieser Artikel veranschaulicht anhand von Beispie...
1.1 Einführung in die iptables-Firewall Netfilter...