1. Angelegenheiten:
Führen Sie eine Gruppe von SQL-Anweisungen in einem Batch aus Vier Hauptmerkmale von Transaktionen:ACID-Prinzipien 1. Atomarität : Eine Transaktion ist die kleinste Ausführungseinheit und kann nicht aufgeteilt werden. Die Atomarität von Transaktionen stellt sicher, dass Aktionen entweder vollständig abgeschlossen werden oder überhaupt keine Auswirkungen haben. 2. Konsistenz: Die Daten bleiben vor und nach der Ausführung der Transaktion konsistent, und die Ergebnisse mehrerer Transaktionen, die dieselben Daten lesen, sind dieselben. 3. Isolierung : Beim gleichzeitigen Zugriff auf die Datenbank werden die Transaktionen eines Benutzers nicht durch andere Transaktionen gestört und die Datenbanken zwischen gleichzeitigen Transaktionen sind unabhängig. 4. Dauerhaftigkeit : Nachdem eine Transaktion bestätigt wurde. Die an den Daten in der Datenbank vorgenommenen Änderungen sind dauerhaft und sollten auch bei einem Datenbankausfall nicht beeinträchtigt werden. --------Transaktions-Commit Welche Probleme bringen gleichzeitige Transaktionen mit sich? (Einige Probleme werden durch die Isolation verursacht)In einer typischen Anwendung werden mehrere Transaktionen gleichzeitig ausgeführt, die häufig mit denselben Daten arbeiten, um ihre jeweiligen Aufgaben abzuschließen (mehrere Benutzer arbeiten mit denselben Daten). Obwohl Parallelität erforderlich ist, kann sie zu den folgenden Problemen führen. Dirty Read : Wenn eine Transaktion auf Daten zugreift und diese ändert und diese Änderung nicht in der Datenbank übernommen wurde, greift eine andere Transaktion ebenfalls auf die Daten zu und verwendet sie dann. Da diese Daten nicht festgeschrieben wurden, handelt es sich bei den von einer anderen Transaktion gelesenen Daten um „schmutzige Daten“, und die auf der Grundlage dieser „schmutzigen Daten“ ausgeführten Vorgänge können fehlerhaft sein. Verloren beim Ändern: Wenn eine Transaktion Daten liest, greift eine andere Transaktion ebenfalls auf diese Daten zu. Nachdem die Daten dann in der ersten Transaktion geändert wurden, werden sie auch von der zweiten Transaktion geändert. Auf diese Weise gehen die Änderungsergebnisse der ersten Transaktion verloren, daher spricht man von einer verlorenen Änderung. Beispiel: Transaktion 1 liest Daten A=20 in einer Tabelle, Transaktion 2 liest auch A=20, Transaktion 1 ändert A=A-1, Transaktion 2 ändert auch A=A-1, das Endergebnis ist A=19 und die Änderung von Transaktion 1 geht verloren. Nicht wiederholbares Lesen: bezieht sich auf das mehrmalige Lesen derselben Daten innerhalb einer Transaktion. Bevor diese Transaktion beendet wird, greift auch eine weitere Transaktion auf die Daten zu. Dann können zwischen den beiden Lesevorgängen in der ersten Transaktion die von der ersten Transaktion zweimal gelesenen Daten aufgrund der Änderung der zweiten Transaktion unterschiedlich sein. Dies bedeutet, dass die in einer Transaktion zweimal gelesenen Daten unterschiedlich sind; deshalb spricht man vom nicht wiederholbaren Lesen. Phantomlesen: Phantomlesen ist dem nicht wiederholbaren Lesen ähnlich. Dies geschieht, wenn eine Transaktion (T1) einige Datenzeilen liest und dann eine andere gleichzeitige Transaktion (T2) einige Daten einfügt. In nachfolgenden Abfragen findet die erste Transaktion (T1) wie eine Illusion einige zusätzliche Datensätze, die ursprünglich nicht vorhanden waren. Dies wird daher als Phantomlesen bezeichnet. Der Unterschied zwischen nicht wiederholbarem Lesen und Phantomlesen; Der Schwerpunkt nicht wiederholbarer Lesevorgänge liegt auf Änderungen, z. B. wenn ein Datensatz mehrmals gelesen wird und festgestellt wird, dass die Werte einiger Spalten geändert wurden. Der Schwerpunkt von Phantomlesevorgängen liegt auf dem Hinzufügen oder Löschen, z. B. wenn ein Datensatz mehrmals gelesen wird und festgestellt wird, dass die Anzahl der Datensätze zugenommen oder abgenommen hat. Was sind die Transaktionsisolationsebenen? REPEATABLE Standardisolationsebene von MySQL: Die von der MySQL InnoDB-Speicher-Engine unterstützte Standardisolationsebene ist REPEATABLE-READ (wieder lesbar). Wir können es über den Befehl SELECT@@tx_isolation; anzeigen. 2. Inhaltsverzeichnis:Die offizielle Definition eines Indexes von MySQL lautet: Ein Index ist eine Datenstruktur, die MySQL dabei hilft, Daten effizient abzurufen. Indem wir den Hauptstamm des Satzes extrahieren, können wir die Essenz des Index erhalten: Der Index ist eine Datenstruktur. Zu den von MySQL-Indizes verwendeten Datenstrukturen gehören hauptsächlich BTree-Indizes und Hash-Indizes. Bei Hash-Indizes ist die zugrunde liegende Datenstruktur eine Hash-Tabelle. Wenn die meisten Anforderungen Einzeldatensatzabfragen betreffen, können daher Hash-Indizes ausgewählt werden, die die schnellste Abfrageleistung bieten. Für die meisten anderen Szenarien werden BTree-Indizes empfohlen. Der BTree-Index von MySQL verwendet den B+Tree im B-Baum, aber die Implementierungsmethoden für die beiden wichtigsten Speicher-Engines sind unterschiedlich. MyISAM: Das Datenfeld des B+Tree-Blattknotens speichert die Adresse des Datensatzes. Beim Indexabruf wird der Index zunächst nach dem B+Tree-Suchalgorithmus durchsucht. Wenn der angegebene Schlüssel vorhanden ist, wird der Wert seines Datenfelds abgerufen und anschließend der entsprechende Datensatz mit dem Wert des Datenfelds als Adresse gelesen. Dies wird als „nicht gruppierter Index“ bezeichnet. InnoDB: Die Datendatei selbst ist die Indexdatei. Im Vergleich zu MyISAM sind die Indexdatei und die Datendatei getrennt, und die Tabellendatendatei selbst ist eine nach B + Tree organisierte Indexstruktur, und das Blattknoten-Datenfeld des Baums speichert die vollständigen Datensätze. Der Schlüssel dieses Indexes ist der Primärschlüssel der Datentabelle, daher ist die InnoDB-Tabellendatendatei selbst der Primärindex. Dies wird als gruppierter Index bezeichnet. Die restlichen Indizes werden als Hilfsindizes verwendet. Im Datenfeld des Hilfsindex wird der Wert des Primärschlüssels des entsprechenden Datensatzes anstelle der Adresse gespeichert, was sich von MyISAM unterscheidet. Wenn Sie auf der Grundlage des Primärindex suchen, können Sie den Knoten, in dem sich der Schlüssel befindet, direkt finden, um die Daten abzurufen. Wenn Sie auf der Grundlage des Hilfsindex suchen, müssen Sie zuerst den Wert des Primärschlüssels abrufen und dann den Primärindex durchgehen. Daher wird beim Entwerfen einer Tabelle nicht empfohlen, ein zu langes Feld als Primärschlüssel zu verwenden. Auch wird nicht empfohlen, ein nicht-monotones Feld als Primärschlüssel zu verwenden, da dies zu häufigen Aufteilungen des Primärindex führt. Die Rolle des Index:
Indexklassifizierung:
Eindeutige Kennung, der Primärschlüssel kann nicht wiederholt werden und es kann nur eine Spalte als Primärschlüssel geben
Vermeiden Sie doppelte Spalten. Eindeutige Indizes können wiederholt werden. Mehrere Spalten können als eindeutige Indizes identifiziert werden.
Standardmäßig wird das Index- oder Schlüsselwort verwendet, um
Nur in bestimmten Datenbank-Engines verfügbar, MylSAM Schnelles Auffinden von Daten Indizierungskriterien:
Die Datenstruktur des Indexes:-- Beim Erstellen des obigen Indexes können wir den Indextyp dafür angeben. Es gibt zwei Arten von Hash-Typ-Indizes: schnell für einzelne Abfragen und langsam für Bereichsabfragen. Btree-Typ-Index: B+-Baum, je mehr Schichten vorhanden sind, desto exponentieller wächst das Datenvolumen (wir verwenden ihn, weil InnoDB ihn standardmäßig unterstützt) -- Verschiedene Speicher-Engines unterstützen unterschiedliche Indextypen. InnoDB unterstützt Transaktionen, Zeilensperren, B-Tree, Volltext und andere Indizes, aber keine Hash-Indizes. MyISAM unterstützt keine Transaktionen, aber Sperren auf Tabellenebene, B-Baum, Volltext und andere Indizes, jedoch keine Hash-Indizes. Der Speicher unterstützt keine Transaktionen, aber Sperren auf Tabellenebene, B-Baum, Hash und andere Indizes, jedoch keine Volltextindizes. NDB unterstützt Transaktionen, Zeilensperren und Hash-Indizes, jedoch keine B-Baum-, Volltext- und anderen Indizes. Das Archiv unterstützt keine Transaktionen, aber Sperren auf Tabellenebene. B-Tree-, Hash-, Volltext- und andere Indizes werden nicht unterstützt. ZusammenfassenDieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalt auf 123WORDPRESS.COM lesen können! Das könnte Sie auch interessieren:
|
>>: Detaillierte Erläuterung der Funktionen und Methoden des Vue3-Lebenszyklus
Inhaltsverzeichnis 1. Was ist Komponentenbildung?...
Dieser Artikel beschreibt, wie MySQL 5.7 aus dem ...
Nachdem MySQL installiert wurde, können Sie in ei...
Vorwort Manchmal habe ich das Gefühl, dass die na...
Bei der Verwendung von Nginx als Webserver sind m...
Inhaltsverzeichnis Das Wesentliche beim QR-Code-L...
Inhaltsverzeichnis 1. Installieren Sie den Vue-Vi...
Inhaltsverzeichnis Ursachen der MySQL-Tabellenfra...
1. <div></div> und <span></s...
In diesem Artikelbeispiel wird der spezifische Co...
Aktuelle Erfahrungen mit der Installation der kos...
Docker ist eine Open-Source-Container-Engine, mit...
In diesem Artikel wird der spezifische Code von V...
Inhaltsverzeichnis Experimentelle Umgebung Instal...
Phänomen: Wandeln Sie das Div in einen Kreis, ein...