Heim  >  Artikel  >  Datenbank  >  Wie implementiert man pessimistisches Sperren in MySQL?

Wie implementiert man pessimistisches Sperren in MySQL?

coldplay.xixi
coldplay.xixiOriginal
2020-06-29 15:25:226345Durchsuche

Pessimistische MySQL-Sperrmethode: 1. Verwenden Sie zuerst [select ... for update] zum Sperren und nachdem der Vorgang abgeschlossen ist, verwenden Sie commit, um die Sperre aufzuheben. Anschließend verwendet die Innodb-Engine standardmäßig die Zeilenebene sperren; schließlich können keine Daten gefunden werden, sperren Sie die Tabelle einfach nicht.

Wie implementiert man pessimistisches Sperren in MySQL?

MySQL pessimistische Sperrmethode:

1. Transaktion starten

begin;/begin work;/start transaction; (三者选一就可以)

2 Produktinformationen

select status from table where id=1 for update;

3. Bestellung basierend auf Produktinformationen generieren

insert into table111 (id,goods_id) values (null,1);

4. Produktstatus auf 2 ändern

update table set status=2 where id=1;

Zusammenfassung:

1. Implementieren Sie eine pessimistische Sperre mit „select...“, um die Sperre zu aktualisieren, und verwenden Sie „commit“, um die Sperre aufzuheben, nachdem der Vorgang abgeschlossen ist.

2. Wann Bei Verwendung der Innodb-Engine, der Standardsperre auf Zeilenebene, wird eine Zeile gesperrt, wenn keine Abfragebedingung oder Bedingung vorliegt.

Wenn das Feld unklar ist, wird die gesamte Tabelle gesperrt gesperrt werden, und wenn die Bedingung ein Bereich ist, wird die gesamte Tabelle gesperrt.

3. Wenn keine Daten gefunden werden können, wird die Tabelle nicht gesperrt.

Verwandte Lernempfehlungen:
MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWie implementiert man pessimistisches Sperren in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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