mysql update锁_mysql中update语句的锁
UPDATE rent_contacts SET contacts_mobile='11111' WHERE? rent_unit_code in (SELECT rent_unit_code FROM? rent_unit? );
第一種情況:? 條件無索引
sql一執行:
BEGIN;
UPDATE contacts SET mobile='11111' WHERE? code in ('3424342' );
sql二執行 UPDATE contacts SET mobile='11111' WHERE? code in ('1111' );
sql二執行受阻,sql一commit之后,sql二可執行成功
結論:條件無索引,鎖表
第二種情況: 條件有索引,in語句是確定的值
sql一執行:
BEGIN;
UPDATE contacts SET mobile='11111' WHERE? code in ('3424342' );
sql二執行 UPDATE contacts SET mobile='11111' WHERE? code in ('1111' );
sql二正常執行,sql二不依賴sql一的commit
結論:條件有索引,鎖行
第三種情況: 條件有索引,in語句是復雜查詢
sql一執行:
BEGIN;
UPDATE contacts SET mobile='11111' WHERE? code in ( select code from user where id=1);
sql二執行 UPDATE contacts SET mobile='11111' WHERE? code in ('1111' );
sql二執行受阻,sql一commit,sql二正常執行
結論:條件有索引,in語句是不確定的值,鎖表
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的mysql update锁_mysql中update语句的锁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv计算两数组的乘积_openc
- 下一篇: mysql索引如何做_5分钟,告诉你My