Einführung: Wenn wir MySQL zum Erstellen einer Tabelle verwenden, erstellen wir normalerweise ein Auto-Inkrement-Feld (AUTO_INCREMENT) und verwenden dieses Feld als Primärschlüssel. In diesem Artikel erfahren Sie alles zum Thema Auto-Increment-ID in Form von Fragen und Antworten. Hinweis: Dieser Artikel basiert vollständig auf der Innodb-Speicher-Engine. Reden wir nicht zu viel, schauen wir uns gemeinsam die ausführliche Einführung an. 1. Warum empfiehlt MySQL, die Auto-Increment-Spalten-ID als Primärschlüssel festzulegen?
Zusammenfassend: Wenn wir die Auto-Increment-Spalte als Primärschlüssel verwenden, ist die Zugriffseffizienz am höchsten. 2. Sind die automatisch inkrementierten Spalten-IDs notwendigerweise fortlaufend? Die Erhöhung der Auto-Inkrement-ID erfolgt nicht notwendigerweise kontinuierlich. Schauen wir uns zunächst die Speicherstrategie von MySQL für Auto-Increment-Werte an:
Die folgenden Situationen können zu einer Unterbrechung der Auto-Inkrement-ID führen: 1. Eindeutiger Schlüsselkonflikt 2. Transaktions-Rollback 3. Einfügen ... Select-Anweisung zur Batch-Anwendung für die automatische ID-Inkrementierung 3. Gibt es eine Obergrenze für die Auto-Increment-ID? Die Auto-Inkrement-ID ist ein ganzzahliges Feld. Wir verwenden häufig den int-Typ, um die Wachstums-ID zu definieren, und der int-Typ hat eine Obergrenze, was bedeutet, dass die Wachstums-ID auch eine Obergrenze hat.
Aus der obigen Tabelle ist ersichtlich, dass der Maximalwert 2147483647 erreichen kann, wenn das Auto-Increment-Feld den vorzeichenbehafteten Typ int verwendet, was mehr als 2,1 Milliarden sind; wenn der vorzeichenlose Typ int verwendet wird, kann der Maximalwert 4294967295 erreichen, was mehr als 4,2 Milliarden sind. Natürlich kann Bigint einen größeren Bereich darstellen. Als nächstes testen wir, was passiert, wenn die Auto-Increment-ID das Maximum erreicht und fügen erneut Daten ein: Tabelle erstellen t(id int unsigned auto_increment Primärschlüssel) auto_increment=4294967295; in t-Werte einfügen (null); // Erfolgreich eingefügte Zeile von 4294967295 zeige, erstelle Tabelle t; /* TABELLE ERSTELLEN `t` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMÄRSCHLÜSSEL (`id`) )ENGINE=InnoDB AUTO_INCREMENT=4294967295; */ in t-Werte einfügen (null); //Duplikateintrag „4294967295“ für Schlüssel „PRIMARY“ Aus dem Experiment können wir ersehen, dass die Auto-Increment-ID nicht erweitert werden kann, wenn sie das Maximum erreicht. Nachdem die erste Insert-Anweisung die Daten erfolgreich eingefügt hat, ändert sich das AUTO_INCREMENT dieser Tabelle nicht (es ist immer noch 4294967295), was dazu führt, dass die zweite Insert-Anweisung denselben Auto-Increment-ID-Wert erhält. Beim erneuten Versuch, die Insert-Anweisung auszuführen, wird ein Primärschlüsselkonfliktfehler gemeldet. 4. Wie sollten wir die Auto-Increment-Spalte pflegen? Zur Wartung werden folgende zwei Vorschläge gemacht: 1. Feldtypauswahl: Es wird empfohlen, den vorzeichenlosen Typ int zu verwenden. Wenn vorhergesagt wird, dass die Datenmenge in der Tabelle sehr groß sein wird, kann stattdessen der vorzeichenlose Typ bigint verwendet werden. 2. Achten Sie bei großen Tabellen mehr auf den Auto-Inkrement-Wert, um einen Überlauf des Primärschlüssels zu verhindern. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: $nextTick-Erklärung, die Sie auf einen Blick verstehen
>>: Nginx: Ein Domänenname für den Zugriff auf mehrere Projekte – Methodenbeispiel
Inhaltsverzeichnis 1. Installieren und importiere...
1.Sperren? 1.1 Was ist ein Schloss? Die eigentlic...
Code kopieren Der Code lautet wie folgt: <!DOC...
Einführung Das Docker-Compose-Projekt ist ein off...
Vorwort: Bei der täglichen Verwendung der Datenba...
Beim Schreiben gespeicherter Prozeduren werden hä...
Inhaltsverzeichnis (1) Einleitung: (2) Zum Kopier...
Standort / { Index Index.jsp; Proxy_next_upstream...
In diesem Artikel wird der spezifische Code der I...
Inhaltsverzeichnis Zugehörige Abhängigkeitsinstal...
Erstellen Sie eine ansprechende Anmelde- und Regi...
Inhaltsverzeichnis Vorwort Virtueller DOM Was ist...
v-for-Richtlinie Wenn wir von Listen sprechen, mü...
1. Warum diesen Artikel schreiben? Sie haben sich...
Nach der Konfiguration der TabBar im WeChat-Apple...