Mysql 數據庫鎖表的原因和解決方法


摘自: https://www.csdn.net/gather_2f/MtTaIgxsMTM5NC1ibG9n.html

鎖表的原因:
當多個連接(數據庫連接)同時對一個表的數據進行更新操作,那么速度將會越來越慢,持續一段時間后將出現數據表被鎖的現象,從而影響到其它的查詢及更新。  
例如:
存儲過程循環30次更新操作(cycore_file_id 為唯一標識)

/*30次更新操作*/ 
BEGIN DECLARE v1 INT DEFAULT 30; WHILE v1 > 0 DO update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f'; SET v1 = v1 - 1; END WHILE; END

 

執行結果(速度非常慢)

時間: 29.876s

Procedure executed successfully
受影響的行: 0

 

200個數據更新操作,三個數據庫連接同時執行

update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';
 update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';
 update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';
 update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';
 update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';
 update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';
...等等

執行結果(持續一段時間后速度越來越慢,出現等待鎖)

# Time: 151208 22:41:24

  

  

 


免責聲明!

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



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