Mysql 更新語句鎖表詳解


本文介紹的時關於更新語句會鎖表的原因及解決方案。

 

一、現象

  當多個連接同時對一個表的數據進行更新操作,那么速度將會越來越慢,持續一段時間后將出現數據表被鎖,從而影響到其它的查詢及更新。

    update Order set state = 2 where oId=1 and state = 1

 

二、原因分析

  MySQL的innodb存儲引擎支持行級鎖,innodb的行鎖是通過給索引項加鎖實現的,這就意味着只有通過索引條件檢索數據時,innodb才使用行鎖,否則使用表鎖。

  而我並沒有添加索引,所以導致數據表被鎖。

 

三、解決辦法

  給 oId 添加索引。

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM