MySQL-Optimierung – Problem mit der MySQL-Innodb-Tabellensperre
淡淡烟草味
淡淡烟草味 2017-05-24 11:32:59
0
2
668

Nach dem Testen habe ich festgestellt, dass die folgenden Situationen Tabellensperren verursachen: 1.Gefällt mir: 2.: Aktualisieren, bedingungslose Operationen löschen Egal, ob die Auswahl bedingt oder bedingungslos ist, ob die Bedingung der Primärschlüssel oder der Index ist, die Tabelle wird nicht gesperrt. Ist das richtig? Stimmt etwas mit meinem Test nicht?

淡淡烟草味
淡淡烟草味

Antworte allen(2)
曾经蜡笔没有小新

select 可指定加各级锁如共享锁、排他锁等,比如select ... FOR UPDATE
至于为什么需要锁,举个简单例子,比如你有个单据继承自上个单据,这时候你可以select加读锁,锁定上个单据,来防止其他人在你提交前对上个单据进行修改,造成数据不一致。

習慣沉默

只要条件不包含主键,或者包含主键但不是等号或IN,都会锁全表的,这就包括了问题中全部3种情况。

不管是锁全表还是锁几行,select加读锁,update和delete加写锁,至于什么是读锁、写锁,可Google一下。至于细节,还可以看下事务隔离级别,这里就不展开了。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage