程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 禁止死鎖檢測來提升高並發MySQL性能

禁止死鎖檢測來提升高並發MySQL性能

編輯:MySQL綜合教程

 

在一個高並發的MySQL服務器上,事務會遞歸檢測死鎖,當超過一定的深度時,性能的下降會變的不可接受。FACEBOOK早就提出了禁止死鎖檢測。

我們做了一個實驗,在禁止死鎖檢測後,TPS得到了極大的提升,如下圖所示:

\

 

禁止死鎖檢測後,即使死鎖發生,也不會回滾事務,而是全部等待到超時

Patch比較簡單,直接在死鎖檢測前加一層判斷即可:

if (innobase_deadlock_check && UNIV_UNLIKELY(lock_deadlock_occurs(lock, trx))) 

。。。。

innobase_deadlock_check是在innodb裡新加的系統變量,用於控制是否打開死鎖檢測

 

摘自 記錄成長之路

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved