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
Inhaltsverzeichnis Zeichensatz Vergleichsregeln V...
Inhaltsverzeichnis Vorwort Erstellen Sie ein Brüc...
Zuerst müssen Sie Navicat für MySQL herunterladen...
Da der Einfluss des Unternehmens wächst und seine...
1. Native Netzwerkanforderung 1. XMLHttpRequest (...
Beim Anmelden am Stresstest sind viele verschiede...
Klassifizierung der Farbeigenschaften Jede Farbe ...
Inhaltsverzeichnis Vorwort Zentrieren von Inline-...
Allgemeiner CSS-Code verursacht nur geringfügige ...
Wie unten dargestellt: Führen Sie hauptsächlich A...
Direkt codieren: Wählen Sie „bigint unsigned“ als...
Lebenslauf-Code: XML/HTML-CodeInhalt in die Zwisc...
NERDTree ist ein Dateisystembrowser für Vim. Mit ...
In diesem Artikel wird der spezifische JavaScript...
Ich bin kürzlich bei der Arbeit auf ein Problem g...