Heim > Datenbank > MySQL-Tutorial > Wie wähle ich Daten aus einer MySQL-Slave-Datenbank aus, ohne sie zu sperren?

Wie wähle ich Daten aus einer MySQL-Slave-Datenbank aus, ohne sie zu sperren?

DDD
Freigeben: 2024-12-13 05:02:09
Original
530 Leute haben es durchsucht

How to Select Data from a MySQL Slave Database Without Locking?

Auswählen von Daten ohne Sperrung in MySQL

Beim Abfragen einer Tabelle, die aktiv durch Ereignisse geändert wird, kann es zu Tabellensperren kommen, die dazu führen können Schlagleistung. Gibt es eine Möglichkeit, eine Select-Anweisung in MySQL auszuführen, die solche Sperren nicht verursacht?

Lösung für Slave-Datenbanken

Die im Artikel mit dem Titel „MYSQL WITH „NOLOCK“ ist in diesem Fall nicht anwendbar, da es sich um eine Slave-Datenbank handelt. Darüber hinaus führt das Festlegen der Transaktionsisolationsstufe auf READ-UNCOMMITTED zu einem Fehler in einer Slave-Datenbank, die für die STATEMENT-basierte binäre Protokollierung konfiguriert ist.

MySQL-spezifische Methodik

Um Sperren beim Auswählen von Daten in einer MySQL-Slave-Datenbank zu vermeiden, können Sie den folgenden Ansatz verwenden:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT COUNT(online.account_id) cnt from online;
COMMIT;
Nach dem Login kopieren
Nach dem Login kopieren

Diese Methode legt die Transaktion vorübergehend fest Setzen Sie die Isolationsstufe auf READ UNCOMMITTED, wodurch die Select-Anweisung ohne Sperren fortgesetzt werden kann. Es ist jedoch wichtig zu bedenken, dass diese Einstellung nur innerhalb einer Transaktion mit einer nachfolgenden COMMIT-Anweisung verwendet werden kann.

Verbesserungsvorschlag

Alternativ können Sie die Verwendung in Betracht ziehen die folgende von Michael Mior vorgeschlagene Syntax:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT COUNT(online.account_id) cnt from online;
COMMIT;
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie wähle ich Daten aus einer MySQL-Slave-Datenbank aus, ohne sie zu sperren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage