Heim > Datenbank > MySQL-Tutorial > Wie kann ich nicht sperrende SELECT-Abfragen in MySQL durchführen?

Wie kann ich nicht sperrende SELECT-Abfragen in MySQL durchführen?

Mary-Kate Olsen
Freigeben: 2024-12-15 16:56:15
Original
201 Leute haben es durchsucht

How Can I Perform Non-Locking SELECT Queries in MySQL?

Nicht sperrende SELECT-Abfragen in MySQL

In MySQL kann es zu häufigen Sperren während SELECT-Vorgängen kommen, wenn Tabellen gleichzeitig geändert werden. Um dieses Problem zu mildern, sollten Sie die Verwendung von Techniken in Betracht ziehen, die nicht sperrende Lesevorgänge ermöglichen.

Verwendung von READ UNCOMMITTED

Ein Ansatz besteht darin, die Transaktionsisolationsstufe auf READ UNCOMMITTED festzulegen. Dies ermöglicht Lesevorgänge ohne den Erwerb von Sperren. Allerdings ist diese Option möglicherweise nicht für Slaves geeignet, da sie die Datenintegrität beeinträchtigt.

Das SQL-Äquivalent von WITH (NOLOCK)

Für die Äquivalenz mit WITH (NOLOCK) -Klausel in Microsoft SQL Server bietet MySQL einen mehrstufigen Prozess:

  1. Starten Sie die Transaktion mit READ UNCOMMITTED Isolation:

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
    Nach dem Login kopieren
  2. Führen Sie die SELECT-Abfrage aus:

    SELECT * FROM TABLE_NAME;
    Nach dem Login kopieren
  3. Setzen Sie die Transaktionsisolationsstufe wieder auf WIEDERHOLBARES LESEN zurück:

    SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
    Nach dem Login kopieren

Verbesserte nicht sperrende Abfrage Ausführung

Michael Mior schlug eine verbesserte Version der nicht sperrenden Abfrageausführung vor:

  1. Setzen Sie die Transaktionsisolationsstufe auf READ UNCOMMITTED:

    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
    Nach dem Login kopieren
  2. Führen Sie die SELECT-Anweisung aus Abfrage:

    SELECT * FROM TABLE_NAME ;
    Nach dem Login kopieren
  3. Übernehmen Sie die Transaktion:

    COMMIT ;
    Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich nicht sperrende SELECT-Abfragen in MySQL durchführen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage