


Zusammenfassung der ACID-Merkmale und Parallelitätsprobleme von MySQL-Transaktionen
Dieser Artikel vermittelt Ihnen relevantes Wissen über MySQL. Er stellt hauptsächlich die ACID-Eigenschaften von MySQL-Transaktionen und Parallelitätsproblemlösungen vor. Der Artikel bietet einen gewissen Referenzwert. Ich hoffe, es wird für alle hilfreich sein.
Empfohlenes Lernen: MySQL-Video-Tutorial
1. Das Konzept der Transaktion
Eine Transaktion ist eine unteilbare Einheit, die aus einer oder mehreren SQL-Anweisungen besteht, die nur dann auf der Datenbank ausgeführt werden, wenn die Transaktion die gesamte Transaktion ist wird erst dann an die Datenbank übermittelt, wenn alle Vorgänge normal ausgeführt wurden. Wenn ein Teil der Transaktion fehlschlägt, wird die Transaktion auf den ursprünglichen Zustand zurückgesetzt. Daher wird die Transaktion entweder alle erfolgreich ausgeführt oder schlägt fehl.
Daher sollten Sie sich einige grundlegende Konzepte von Transaktionen merken:
Eine Transaktion ist die Ausführung einer Reihe von SQL-Anweisungen. Dies stellt sicher, dass sie entweder alle erfolgreich sind oder fehlschlagen die Atomizität der Transaktionsausführung. Erst wenn alle SQL-Anweisungen der Transaktion erfolgreich ausgeführt wurden, kann die Transaktion festgeschrieben und die Ergebnisse auf die Festplatte geschrieben werden. Wenn während der Transaktionsausführung einige SQL-Fehler auftreten, muss die Transaktion auf den ursprünglichen Zustand zurückgesetzt werden. Zum Beispiel erfordert das Transfergeschäft, dass mehrere SQL-Anweisungen zusammen ausgeführt werden. Erst wenn diese SQL-Anweisungen erfolgreich ausgeführt werden, kann das Geschäft als erfolgreich angesehen werden.Die Transaktionsverarbeitung hat drei Zustände:
begin: Alle zum Öffnen einer Transaktion auszuführenden SQL-Anweisungen sind erfolgreich, und commitübergibt eine Transaktion, wenn eine der SQL-Anweisungen vorliegt ein Stromausfall oder Server Wenn ein Fehler auftritt, der zu einer SQL-Ausführungsausnahme führt, wird die Transaktion nicht übermittelt, die Transaktion wird zurückgesetzt (Rollback) und die Daten werden auf den Zustand vor Beginn der Transaktion zurückgesetzt
Dies wird durch die Speicher-Engine garantiert (garantiert durch Redo-Log und Undo-Log).Die MyISAM-Speicher-Engine unterstützt keine Transaktionen, während die InnoDB-Speicher-Engine Transaktionen und Zeilensperren unterstützt.
Verwenden Sieshow engineG
, um zu überprüfen, welche Speicher-Engines von der aktuellen Datenbank unterstützt werden. show enginesG
查看当前数据库支持哪些存储引擎。
select @@autocommit;
select @@autocommit;Einstellungen für den Transaktions-Commit-Status anzeigen<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/a436295269b7a6438302b813398a2dde-3.png" class="lazy" alt="">
Die Datenbank-Engine kann vorübergehend über Befehle oder dauerhaft über Konfigurationsdateien geändert werden.
Wenn unser Geschäft Transaktionen umfasst, steuern wir diese Variable normalerweise im Code. Im Allgemeinen bestehen unsere Transaktionen aus mehreren SQLs und müssen die Atomizität der Transaktion erfüllen, daher stellen wir sie auf manuelle Übermittlung ein. Wenn das Geschäft erfolgreich ist, wird die Transaktion übermittelt; wenn während des Geschäfts ein Fehler auftritt, wird eine Transaktion zurückgesetzt.
2. ACID-Merkmale
Jede Transaktion muss die folgenden 4 Merkmale erfüllen: 🎜🎜Die Atomizität (Atomar) einer Transaktion: Eine Transaktion ist ein unteilbares Ganzes. Die Transaktion muss atomare Eigenschaften haben, und wenn die Transaktion geändert wird, wird entweder alles oder keines ausgeführt, also teilweise Der Abschluss der Transaktion ist nicht zulässig. Konsistenz von Transaktionen(Konsistenz): Vor und nach der Ausführung einer Transaktion müssen die Datenbankdaten einen konsistenten Zustand beibehalten. Der Konsistenzstatus der Datenbank muss in der Verantwortung des Benutzers liegen und durch den Parallelitätskontrollmechanismus implementiert werden. Nehmen wir als Beispiel den Online-Einkauf: Erst wenn die Ware das Lager verlässt und der Kunde in den Warenkorb legt, kann eine vollständige Transaktion abgeschlossen werden. (Konsistenz spiegelt sich nicht nur in Transaktionen wider, sondern umfasst auch die Einführung von MySQL in der Speicherschicht. Um die Zugriffseffizienz von Hotspot-Daten zu verbessern, wird im Allgemeinen eine Cache-Schicht Redis oder Memery-Cache hinzugefügt, um die Hotspot-Daten zwischenzuspeichern (Konsistenzproblem der Daten der Cache-Schicht und der Datenbank-DB-Schicht) Isolierung von Transaktionen (Isolution): Wenn zwei oder mehr Transaktionen gleichzeitig ausgeführt werden, werden die Vorgänge innerhalb einer Transaktion von den Vorgängen anderer Transaktionen isoliert, um die Datensicherheit zu gewährleisten Transaktionen und werden nicht von anderen Transaktionen beeinflusst verhindert, dass sich die gleichzeitig ausgeführten Transaktionen gegenseitig beeinflussen . Isolationsstufe: Datensicherheit und Transaktionsparallelität. Je strenger die Isolation, desto höher die Sicherheit und desto geringer die Parallelität (dh Parallelitätskontrolle, Gewährleistung der Datensicherheit). Haltbarkeit der Transaktion: Nachdem die Transaktion abgeschlossen ist (die Transaktionsfestschreibung ist erfolgreich), garantiert das DBMS dies Behalten Sie die Daten in der Datenbank. Die Änderung ist dauerhaft. Auch wenn die Datenbank aufgrund eines Fehlers ausfällt, sollten die Daten wiederhergestellt werden können. Das Wichtigste an MySQL ist das Protokoll, nicht die Daten!
3. Probleme mit der Transaktionsparallelität
Die folgenden Probleme treten normalerweise auf, wenn Transaktionen gleichzeitig ausgeführt werden:
Dirty Read: Eine Transaktion liest nicht festgeschriebene Daten einer anderen Transaktion. Wenn beispielsweise Transaktion A und Transaktion B gleichzeitig ausgeführt werden, fragt Transaktion B nach der Aktualisierung von Transaktion A die nicht festgeschriebenen Daten von A ab und liest sie. Zu diesem Zeitpunkt wird Transaktion A zurückgesetzt und die von Transaktion B gelesenen Daten sind ungültige fehlerhafte Daten (
Transaktion B liest die nicht festgeschriebenen Daten von Transaktion A) Nicht wiederholbares Lesen (Nicht wiederholbares Lesen): Der Vorgang einer Transaktion führt dazu, dass eine andere Transaktion davor und danach zweimal unterschiedliche Daten liest. Wenn beispielsweise Transaktion A und Transaktion B gleichzeitig ausgeführt werden, aktualisiert Transaktion A die von Transaktion B abgefragten Daten, nachdem Transaktion B Daten abgefragt und gelesen hat. Zu diesem Zeitpunkt liest Transaktion B die Daten erneut und stellt fest, dass die Daten vor und zweimal gelesen wurden danach sind nicht dasselbe. (
Transaktion B liest die übermittelten Daten von Transaktion A) Phantom Read(Phantom Read) Phantom Read: Der Vorgang einer Transaktion führt dazu, dass die Datenmenge der Ergebnisse der beiden Abfragen vor und nach einer anderen Transaktion unterschiedlich ist. Wenn beispielsweise Transaktion A und Transaktion B gleichzeitig ausgeführt werden, nachdem Transaktion B Daten abgefragt und gelesen hat, fügt Transaktion A einen Datensatz hinzu oder löscht ihn, der die Abfragebedingungen von Transaktion B erfüllt. Zu diesem Zeitpunkt fragt Transaktion B erneut ab und stellt fest, dass die vorherige Die Abfrage hat keine vorhandenen Datensätze oder einige Datensätze aus der vorherigen Abfrage fehlen. (Transaktion B hat die neu hinzugefügten Daten von Transaktion A gelesen oder kann die von Transaktion A gelöschten Daten nicht lesen)Dirty Reading muss eliminiert werden, da die Transaktion nicht festgeschrieben ist. In einigen Szenarien sind nicht wiederholbare Lesevorgänge und Phantom-Lesevorgänge zulässig (die Transaktion wurde festgeschrieben), müssen jedoch nicht eliminiert werden (durch Festlegen unterschiedlicher Isolationsstufen), was durch die Anforderungen des Anwendungsszenarios bestimmt wird. 4. Transaktionsbezogene Befehle
Überprüfen Sie, ob MySQL Transaktionen automatisch übermittelt.
select @@autocommit;
0 bedeutet manuelle Übermittlung von Transaktionen, 1 bedeutet automatische Übermittlung von Transaktionen. Stellen Sie die Transaktionsübermittlungsmethode auf manuelle Übermittlung ein (betrifft nur die aktuelle Sitzung):
Empfohlenes Lernen: MySQL-Video-Tutorial
Das obige ist der detaillierte Inhalt vonZusammenfassung der ACID-Merkmale und Parallelitätsprobleme von MySQL-Transaktionen. 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".

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.

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.

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 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.

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

Das Erstellen einer SQL -Datenbank umfasst 10 Schritte: Auswählen von DBMs; Installation von DBMs; Erstellen einer Datenbank; Erstellen einer Tabelle; Daten einfügen; Daten abrufen; Daten aktualisieren; Daten löschen; Benutzer verwalten; Sichern der Datenbank.
