Heim  >  Artikel  >  Was sind die Standard-Transaktionsisolationsstufen von MySQL?

Was sind die Standard-Transaktionsisolationsstufen von MySQL?

zbt
zbtOriginal
2023-08-08 11:01:174726Durchsuche

Die Standard-Transaktionsisolationsstufen von MySQL sind „Read Uncommitted“, „Read Committed“, „Repeatable Read“ und „Serializable“. 1. Nicht festgeschriebenes Lesen, was bedeutet, dass Transaktionen unter dieser Isolationsstufe nicht festgeschriebene Daten anderer Transaktionen lesen können. 2. Festgeschriebenes Lesen, was bedeutet, dass Transaktionen unter dieser Isolationsstufe nur übermittelte Daten lesen können .

Was sind die Standard-Transaktionsisolationsstufen von MySQL?

MySQL verfügt über vier Standard-Transaktionsisolationsstufen: Read Uncommitted (Lesen ohne Committed), Read Committed (Lesen mit Committed) und Repeatable Lesen (wiederholbares Lesen) und Serialisierbar (Serialisierung). Die einzelnen Isolationsstufen werden im Folgenden ausführlich vorgestellt und erläutert.

1. Nicht festgeschrieben lesen: bedeutet, dass Transaktionen unter dieser Isolationsstufe nicht festgeschriebene Daten von anderen Transaktionen lesen können. Diese Isolationsstufe ist die niedrigste und führt zu fehlerhaften Lesevorgängen (Dirty Lesen) Frage. Schmutziges Lesen bedeutet, dass die gelesenen Daten ungültig werden, nachdem eine Transaktion Daten aus einer anderen nicht festgeschriebenen Transaktion gelesen hat und die Transaktion zurückgesetzt wird.

2. Lesen Festgeschrieben: bedeutet, dass Transaktionen unter dieser Isolationsstufe nur übermittelte Daten lesen können. Diese Isolationsstufe kann das Problem schmutziger Lesevorgänge lösen, führt jedoch zu nicht wiederholbaren Lesevorgängen. Lesen) Frage. Nicht wiederholbares Lesen bedeutet, dass die Leseergebnisse inkonsistent sind, wenn dieselben Daten innerhalb einer Transaktion mehrmals gelesen werden.

3. Wiederholbar Lesen: bedeutet, dass Transaktionen unter dieser Isolationsstufe dieselben Daten wiederholt lesen können und die Leseergebnisse immer konsistent sind. Diese Isolationsstufe kann das Problem nicht wiederholbarer Lesevorgänge lösen, führt jedoch zu Phantom-Lesevorgängen. Lesen) Frage. Phantomlesen bedeutet, dass dieselbe Abfrage innerhalb einer Transaktion mehrmals ausgeführt wird und neue Daten, die die Bedingungen erfüllen, zum Ergebnissatz hinzugefügt werden.

4. Serialisierbar: bedeutet, dass Transaktionen unter dieser Isolationsstufe streng sequentiell ausgeführt werden und eine gleichzeitige Ausführung nicht zulässig ist. Diese Isolationsstufe kann das Problem von Phantom-Lesevorgängen lösen, beeinträchtigt jedoch die Parallelitätsleistung des Systems.

Zusätzlich zu den oben genannten vier Isolationsstufen bietet MySQL standardmäßig auch eine spezielle Isolationsstufe, nämlich die Standardisolationsstufe (Standard). Die Standardisolationsstufe wird durch die globale Variable sql_mode des Servers bestimmt. Wenn sql_mode STRICT_ALL_TABLES, STRICT_TRANS_TABLES oder eine Kombination aus STRICT_ALL_TABLES und STRICT_TRANS_TABLES ist, ist die Standardisolationsstufe REPEATABLE LESEN. Wenn sql_mode den oben genannten Wert nicht enthält, ist die Standardisolationsstufe READ COMMITTED.

In praktischen Anwendungen ist es sehr wichtig, die geeignete Isolationsstufe zu wählen. Wenn die Anwendung höhere Anforderungen an die Datenkonsistenz stellt, können Sie eine höhere Isolationsstufe wählen, z. B. Wiederholbar Lesen oder serialisierbar. Wenn Sie geringere Anforderungen an die Datenkonsistenz und höhere Anforderungen an die Parallelitätsleistung haben, können Sie eine niedrigere Isolationsstufe wählen, z. B. „Read Committed“.

Darüber hinaus bietet MySQL auch eine Methode zum Festlegen der Transaktionsisolationsstufe. Die Transaktionsisolationsstufe kann durch Festlegen der Variablen „transaction_isolation“ auf Sitzungsebene oder globaler Ebene geändert werden. Mit der folgenden Anweisung können Sie beispielsweise die Isolationsstufe auf „Lesen“ ändern Committed:

SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

Zusammenfassend umfassen die standardmäßigen Transaktionsisolationsstufen von MySQL „Read Uncommitted“, „Read Committed“ und „Repeatable“. Lese-, serialisierbare und Standardisolationsstufen. Die Auswahl der geeigneten Isolationsstufe ist wichtig, um die Datenkonsistenz sicherzustellen und die Parallelitätsleistung zu verbessern.

Das obige ist der detaillierte Inhalt vonWas sind die Standard-Transaktionsisolationsstufen von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn