MySQL InnoDB行鎖優化建議

chenfeng發表於2017-03-21
InnoDB儲存引擎由於實現了行級鎖定,雖然在鎖定機制的實現方面所帶來的效能損耗可能比表級鎖定會更高一些,但是在整體併發處理能力方面要遠遠優於MyISAM的表級鎖定的。當系統併發量比較高的時候,InnoDB的整體效能和MyISAM相比
就會有比較明顯的優勢了。但是InnoDB的行級鎖定同樣也有其脆弱的一面,當我們使用不當的時候,可能會讓InnoDB的整體效能表現不僅不能比MyISAM高,甚至可能會更差。
要想合理的利用InnoDB的行級鎖定,做到揚長避短,我們必須做好以下工作:
(1).儘可能讓所有的資料檢索都通過索引Index來完成,從而避免InnoDB因為無法通過索引鍵加鎖而升級為表級鎖定;
(2).合理設計索引,讓InnoDB在索引鍵上面加鎖的時候儘可能準確,儘可能的縮小鎖定範圍,避免造成不必要的鎖定而影響其他查詢的執行;
(3).儘可能減少基於範圍的資料檢索過濾條件,避免因為間隙鎖帶來的負面影響而鎖定了不該鎖定的記錄;
(4).儘量控制MySQL事務的大小,減小鎖定的資源量和鎖定的時間長度;
(5).在業務環境允許的情況下,儘量使用較低階別的事務隔離,以減少MySQL因為實現事務隔離級別所帶來的附加成本。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2135737/,如需轉載,請註明出處,否則將追究法律責任。

相關文章