


Ein Artikel, der die Prinzipien von Transaktionen und MVCC in MySQL ausführlich erklärt
Dieser Artikel wird Ihnen helfen, die Transaktionen in MySQL zu verstehen und das Prinzip von MVCC vorzustellen. Ich hoffe, er kann Ihnen helfen!
01 Was ist eine Transaktion?
Eine Datenbanktransaktion bezieht sich auf eine Reihe von Datenvorgängen, die entweder alle erfolgreich sind oder fehlschlagen. Tatsächlich ist es nicht so, dass ein Teil davon ausgeführt wird erledigt, aber solange ein Schritt fehlschlägt, wird das Zurücksetzen aller Vorgänge ein bisschen so sein, als würde man nichts tun, ohne etwas anderes zu tun.
In MySQL wird die Transaktionsunterstützung auf der Engine-Ebene implementiert. MySQL ist ein System, das mehrere Engines unterstützt, aber nicht alle Engines unterstützen Transaktionen. Zum Beispiel unterstützt die native MyISAM-Engine von MySQL keine Transaktionen, was einer der wichtigen Gründe ist, warum MyISAM durch InnoDB ersetzt wurde.
1.1 Vier Hauptmerkmale
- Atomizität: Nach Beginn der Transaktion sind alle Vorgänge entweder abgeschlossen oder nicht abgeschlossen, und es ist unmöglich, in der Mitte zu stagnieren. Wenn während der Transaktionsausführung ein Fehler auftritt, wird die Transaktion auf den Zustand vor Beginn der Transaktion zurückgesetzt und alle Vorgänge werden so ausgeführt, als ob sie nicht stattgefunden hätten. Das heißt, die Materie ist ein unteilbares Ganzes, genau wie die in der Chemie erlernten Atome, die die Grundeinheiten der Materie darstellen.
- Konsistenz: Die Integritätsbeschränkungen der Datenbank werden vor und nach Beginn der Transaktion nicht verletzt. Wenn A beispielsweise Geld an B überweist, ist es A unmöglich, das Geld abzuziehen, B es jedoch nicht erhält.
- Isolation: Nur eine Transaktion darf gleichzeitig dieselben Daten anfordern, und es gibt keine Interferenzen zwischen verschiedenen Transaktionen. Beispielsweise kann A Geld von einer Bankkarte abheben, bevor der Abhebungsvorgang von A abgeschlossen ist.
- Dauerhaftigkeit: Nach Abschluss der Transaktion werden alle Aktualisierungen der Datenbank durch die Transaktion in der Datenbank gespeichert und können nicht zurückgesetzt werden.
1.2 Isolationsstufe
Unter den vier Merkmalen von SQL-Transaktionen sind Atomizität, Konsistenz und Haltbarkeit alle relativ leicht zu verstehen. Aber die Isolationsstufe von Transaktionen ist tatsächlich schwierig. Heute werden wir hauptsächlich über die Isolation von MySQL-Transaktionen sprechen.
SQL-Standard-Transaktionsisolationsstufen von niedrig bis hoch sind: read uncommitted (read uncommitted), read commit (read commited), wiederholbares Lesen (repeatable read) und serializable (serialisierbar). Je höher das Niveau, desto geringer ist der Wirkungsgrad.
- Nicht festgeschrieben lesen: Wenn eine Transaktion nicht festgeschrieben wurde, können die von ihr vorgenommenen Änderungen von anderen Transaktionen gesehen werden.
- Commit lesen: Nachdem eine Transaktion festgeschrieben wurde, werden die vorgenommenen Änderungen von anderen Transaktionen gesehen.
- Wiederholbares Lesen: Die während der Ausführung einer Transaktion angezeigten Daten stimmen immer mit den Daten überein, die beim Start der Transaktion angezeigt werden. Natürlich sind unter der wiederholbaren Leseisolationsstufe nicht festgeschriebene Änderungen auch für andere Transaktionen unsichtbar.
- Serialisierung: Wie der Name schon sagt, fügt „Schreiben“ für dieselbe Datensatzzeile eine „Schreibsperre“ und „Lesen“ eine „Lesesperre“ hinzu. Wenn ein Lese-/Schreibsperrenkonflikt auftritt, muss die Transaktion, auf die später zugegriffen wird, auf den Abschluss der vorherigen Transaktion warten, bevor sie weiter ausgeführt werden kann. Alle Daten unter dieser Isolationsstufe sind also am stabilsten, aber die Leistung ist auch am schlechtesten.
1.3 Gelöste Parallelitätsprobleme
Die SQL-Transaktionsisolationsstufe ist darauf ausgelegt, Parallelitätsprobleme weitestgehend zu lösen:
- Dirty Read: Transaktion A liest die von Transaktion B aktualisierten Daten, und dann gibt B den Roll-Vorgang zurück Dann handelt es sich bei den von A gelesenen Daten um schmutzige Daten Wenn Daten mehrmals eingegeben werden, sind die Ergebnisse inkonsistent.
- Phantomlesung: Systemadministrator A hat die Noten aller Schüler in der Datenbank von bestimmten Noten in ABCDE-Noten geändert, aber Systemadministrator B hat zu diesem Zeitpunkt einen Datensatz mit bestimmten Noten eingefügt. Als Systemadministrator A die Änderung abschloss, stellte er fest, dass dies der Fall ist ein weiterer Datensatz, der nicht verändert wurde, als ob eine Halluzination aufgetreten wäre. Dies wird als Phantomlesung bezeichnet.
- Verschiedene SQL-Transaktionsisolationsstufen können unterschiedliche Parallelitätsprobleme lösen, wie in der folgenden Tabelle gezeigt:
.
Dirty Read | Non-Repeatable Read | Phantom Read | |
---|---|---|---|
Possible | Possible | Möglich | |
unmöglich | möglich |
Das obige ist der detaillierte Inhalt vonEin Artikel, der die Prinzipien von Transaktionen und MVCC in MySQL ausführlich erklärt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

Sie können eine neue MySQL -Verbindung in Navicat erstellen, indem Sie den Schritten folgen: Öffnen Sie die Anwendung und wählen Sie eine neue Verbindung (Strg N). Wählen Sie "MySQL" als Verbindungstyp. Geben Sie die Hostname/IP -Adresse, den Port, den Benutzernamen und das Passwort ein. (Optional) Konfigurieren Sie erweiterte Optionen. Speichern Sie die Verbindung und geben Sie den Verbindungsnamen ein.

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.
