Einstellungen für die Transaktionsisolationsebene globale Isolationsstufe für Transaktionen festlegen, Read Committed; //globale Isolationsstufe für Sitzungstransaktionen festlegen, Read Committed; //aktuelle Sitzung Ändern Sie die Methode zur Übermittlung von Transaktionen (ob automatisch übermittelt werden soll, MySQL übermittelt standardmäßig automatisch). SET AUTOCOMMIT = 1; //Automatisch committen, 0 manuell committen Verschiedene Datenbank-Engines haben unterschiedliche MVCC-Modi, normalerweise eine optimistische und eine pessimistische Parallelitätskontrolle. innodb veranschaulichen: MVCC von InnoDB wird implementiert, indem nach jeder Datensatzzeile zwei versteckte Spalten gespeichert werden. In diesen beiden Spalten wird in einer die Erstellungszeit der Zeile und in der anderen die Ablaufzeit (oder Löschzeit) der Zeile gespeichert. Gespeichert wird natürlich nicht der tatsächliche Zeitwert, sondern die Systemversionsnummer. Bei jedem Start einer neuen Transaktion wird die Systemversionsnummer automatisch erhöht. Die Systemversionsnummer zu Beginn der Transaktion wird als Transaktionsversionsnummer verwendet, um sie mit der abgefragten zu vergleichen. WÄHLEN InnoDB prüft jede Zeile anhand der folgenden beiden Bedingungen: a. InnoDB sucht nur nach Datenzeilen, deren Versionen älter sind als die aktuelle Transaktionsversion (das heißt, die Systemversionsnummer der Zeile ist kleiner oder gleich der Systemversionsnummer der Transaktion). Dadurch wird sichergestellt, dass die von der Transaktion gelesenen Zeilen entweder vor Beginn der Transaktion vorhanden waren oder von der Transaktion selbst eingefügt oder geändert wurden. b. Die gelöschte Version der Zeile ist entweder nicht definiert oder größer als die aktuelle Transaktionsversionsnummer. Dadurch wird sichergestellt, dass von einer Transaktion gelesene Zeilen nicht vor Beginn der Transaktion gelöscht wurden. Als Abfrageergebnisse können nur Datensätze zurückgegeben werden, die die beiden oben genannten Bedingungen erfüllen. EINFÜGEN InnoDB speichert die aktuelle Systemversionsnummer als Zeilenversionsnummer für jede neu eingefügte Zeile. LÖSCHEN InnoDB speichert die aktuelle Systemversionsnummer als Zeilenlöschkennung für jede gelöschte Zeile. AKTUALISIEREN InnoDB speichert die aktuelle Systemversionsnummer als Zeilenversionsnummer beim Einfügen einer neuen Zeile und speichert die aktuelle Systemversionsnummer in der ursprünglichen Zeile als Zeilenlöschmarkierung. Beachten: MVCC funktioniert nur auf den Isolationsebenen REPEATABLE READ und READ COMMITED. Die anderen beiden Isolationsebenen sind mit MVCC nicht kompatibel, da READ UNCOMITTED immer die neueste Datenzeile liest und nicht die Datenzeile, die der aktuellen Transaktionsversion entspricht. SERIALIZABLE sperrt alle gelesenen Zeilen. Überprüfen Sie den Status der Tabelle Tabellenstatus wie „Aufgabe“ anzeigen\G; Dirty Reads, nicht wiederholbare Reads und Phantom Reads Dirty Read: Die aktuelle Transaktion liest den nicht festgeschriebenen Status einer anderen Transaktion und die Transaktion ist nicht isoliert. Nicht wiederholbares Lesen: Es wird eine Transaktionsisolation erreicht, es treten jedoch Dateninkonsistenzen auf, wenn dieselben Daten zweimal gelesen werden. Phantomlesen: Wenn derselbe Datensatz zweimal abgefragt wird, werden neue Daten gefunden. Dies liegt hauptsächlich daran, dass andere Transaktionen Daten in den Datensatz in der Mitte eingefügt haben. (Das Hinzufügen einer Lückensperre löst dieses Problem) Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Analyse der Lösung für das Problem der gemeinsamen Nutzung von Nginx-Sitzungen
>>: Das Vue-CLI-Framework implementiert eine Timer-Anwendung
Ich bin vor Kurzem auf ein Problem gestoßen, als ...
Hintergrund: Manchmal müssen wir JSON-Daten direk...
So ermöglichen Sie Tomcat die Unterstützung des h...
1. Laden Sie das Axios-Plugin herunter cnpm insta...
1. Fenster -> Einstellungen, um das Eclipse-Ei...
1. Frage: Ich habe in diesen Tagen Einfügevorgäng...
Zweck: Verschachtelte Verwendung von MySQL-Aggreg...
Inhaltsverzeichnis 1. Weltkarte 1. Installieren S...
Schlägt die Remote-Verbindung zu MySQL fehl, kann...
Das Einrichten des Fernzugriffs in mysql5.7 funkt...
Heutzutage sprechen wir oft über Web 2.0. Was als...
1. Traditionelle Binlog-Master-Slave-Replikation,...
In diesem Artikelbeispiel wird der spezifische Co...
1. Herunterladen https://dev.mysql.com/downloads/...
Inhaltsverzeichnis Vorwort 1. Konfigurieren Sie d...