Anzeigedefinitions-ID Wenn die in der Tabelle definierte Auto-Increment-ID die Obergrenze erreicht, bleibt der beim Beantragen der nächsten ID erhaltene Wert unverändert -- (2^32-1) = 4.294.967.295 -- Es wird empfohlen, BIGINT UNSIGNED zu verwenden. TABELLE ERSTELLEN t (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY) AUTO_INCREMENT=4294967295; EINFÜGEN IN t-WERTE (null); - AUTO_INCREMENT hat mysql> SHOW CREATE TABLE t nicht geändert; +-------+------------------------------------------------------+ | Tabelle | Tabelle erstellen | +-------+------------------------------------------------------+ | t | TABELLE ERSTELLEN `t` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMÄRSCHLÜSSEL (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4294967295 DEFAULT CHARSET=utf8 | +-------+------------------------------------------------------+ mysql> INSERT INTO t VALUES (null); FEHLER 1062 (23000): Doppelter Eintrag „4294967295“ für Schlüssel „PRIMARY“ InnoDB Zeilen-ID 1. Wenn die erstellte InnoDB-Tabelle keinen Primärschlüssel angibt, erstellt InnoDB eine unsichtbare Row_ID mit einer Länge von 6 Bytes. 2. InnoDB verwaltet einen globalen dict_sys.row_id-Wert für alle InnoDB-Tabellen ohne Primärschlüssel.
3. In der Code-Implementierung ist row_id ein 8-Byte BIGINT UNSIGNED
4. Schreiben Sie in InnoDB diese Datenzeile in die Tabelle, nachdem Sie row_id = N beantragt haben
5. Es wird empfohlen, einen automatisch inkrementierenden Primärschlüssel zu erstellen
XID 1. Wenn Redolog und Binlog zusammen verwendet werden, gibt es ein gemeinsames Feld XID, das einer Transaktion entspricht 2. Logik generieren
3. global_query_id ist eine reine Speichervariable und wird nach dem Neustart gelöscht
4. global_query_id ist 8 Bytes groß, mit einer Obergrenze von 2^64-1
InnoDB trx_id 1. XID wird von der Serverschicht verwaltet 2. InnoDB verwendet trx_id intern, um InnoDB-Transaktionen mit der Serverschicht zu verknüpfen. 3. InnoDB verwaltet intern eine globale Variable max_trx_id
4. Die Kernidee der InnoDB-Datensichtbarkeit
5. Für die ausgeführte Transaktion können Sie die trx_id der Transaktion über information_schema.innodb_trx sehen Ablauf
-- Bei T2, mysql> SELECT trx_id,trx_mysql_thread_id FROM innodb_trx; +-----------------+---------------------+ | trx_id | trx_mysql_thread_id | +-----------------+---------------------+ | 281479812572992 | 30 | +-----------------+---------------------+ -- Bei T4, mysql> SELECT trx_id,trx_mysql_thread_id FROM innodb_trx; +-----------------+---------------------+ | trx_id | trx_mysql_thread_id | +-----------------+---------------------+ | 7417540 | 30 | +-----------------+---------------------+ mysql> PROZESSLISTE ANZEIGEN; +----+-----------------+--------------+--------------------+---------+--------+------------------------+------------------+ | ID | Benutzer | Host | db | Befehl | Zeit | Status | Info | +----+-----------------+--------------+--------------------+---------+--------+------------------------+------------------+ | 4 | event_scheduler | localhost | NULL | Daemon | 344051 | Warte auf leere Warteschlange | NULL | | 30 | root | localhost | test | Ruhezustand | 274 | | NULL | | 31 | root | localhost | information_schema | Abfrage | 0 | wird gestartet | PROZESSLISTE ANZEIGEN | +----+-----------------+--------------+--------------------+---------+--------+------------------------+------------------+ 1. trx_mysql_thread_id=30 ist die Thread-ID, also der Thread, in dem sich Sitzung A befindet 2. Bei T1 ist der Wert von trx_id tatsächlich 0 und der große Wert dient nur zur Anzeige (unterscheidet sich von normalen Lese- und Schreibtransaktionen). 3. Zum Zeitpunkt T2 ist trx_id eine große Zahl, da Sitzung A zum Zeitpunkt T1 keine Aktualisierungsvorgänge umfasste und eine schreibgeschützte Transaktion war.
4. Wenn Sitzung A zum Zeitpunkt T3 die INSERT-Anweisung ausführt, weist InnoDB tatsächlich trx_id zu Schreibgeschützte Transaktionen 1. Zum Zeitpunkt T2 oben wird die große trx_id vorübergehend vom System berechnet
2. Während der Ausführung derselben schreibgeschützten Transaktion ändert sich ihre Zeigeradresse nicht
3. Wenn mehrere schreibgeschützte Transaktionen parallel ausgeführt werden, muss die Zeigeradresse der TRX-Variablen jeder Transaktion unterschiedlich sein
4. Der Zweck der Addition von 2 ^ 48 besteht darin, sicherzustellen, dass der von schreibgeschützten Transaktionen angezeigte trx_id-Wert relativ groß ist, was zur Unterscheidung gewöhnlicher Lese-/Schreibtransaktionen dient. 5. Die Logik von trx_id ähnelt der von row_id und die Länge ist als 8 Bytes definiert
6. Vorteile, wenn trx_id nicht schreibgeschützten Transaktionen zugewiesen wird
7. max_trx_id wird dauerhaft gespeichert und nach einem Neustart nicht auf 0 zurückgesetzt. Erst wenn die Obergrenze von 2^48-1 erreicht ist, wird es auf 0 zurückgesetzt. Thread-ID 1. Die erste Spalte von SHOW PROCESSLIST ist thread_id 2. Das System speichert eine Umgebungsvariable thread_id_counter
3. thread_id_counter ist als 4 Bytes definiert und wird daher nach Erreichen von 2^32-1 auf 0 zurückgesetzt.
Tun { neue_ID= Thread-ID-Zähler++; } während (!thread_ids.insert_unique(neue_id).Sekunde); Verweise „MySQL Praxis 45 Vorlesungen“ 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:
|
<<: JavaScript zum Erzielen eines dynamischen Tabelleneffekts
>>: JavaScript implementiert die Maussteuerung eines frei beweglichen Fensters
Machen Sie einen leeren Bereich für Taobao: Wenn ...
Hier ist ein einzeiliges Layout mit ul>li für ...
Vorwort Was ist Staat Wir alle sagen, dass React ...
Code Wissenspunkte 1. Kombinieren Sie fullpage.js...
Inhaltsverzeichnis 2. Feldverkettung 2. Geben Sie...
Nach dem Start initialisiert der Worker-Prozess z...
Auch wenn nicht Halloween ist, lohnt es sich, sic...
Wenn ich irgendwelche unklaren Fragen habe, gehe ...
Busybox: Ein Schweizer Taschenmesser voller klein...
Was sind HTTP-Header HTTP ist eine Abkürzung für ...
Zugehörige Dokumente Ein Teil dieses Artikels wir...
Einfügen von Daten in Tabellennamen (Spaltenname ...
Beim Installieren der Datenbank ist folgender Feh...
1. Einleitung WHMCS bietet eine Komplettlösung fü...
Inhaltsverzeichnis Semaphor Nginx-Hot-Bereitstell...