mysql innodb引擎優化建議

2021-06-22 01:51:16 字數 730 閱讀 3101

innodb

儲存引擎由於實現了行級鎖定,雖然在鎖定機制的實現方面所帶來的效能損耗可能比表級鎖定會要更高一些,但是在整體併發處理能力方面要遠遠優於myisam的表級鎖定的。當系統併發量較高的時候,innodb的整體效能和myisam相比就會有比較明顯的優勢了。但是,innodb的行級鎖定同樣也有其脆弱的一面,當我們使用不當的時候,可能會讓

innodb的整體效能表現不僅不能比myisam高,甚至可能會更差

要想合理利用innodb的行級鎖定,做到揚長避短,我們必須做好以下工作:

a)盡可能讓所有的資料檢索都通過索引來完成,從而避免innodb因為無法通過索引鍵加鎖而公升級為表級鎖定;

b)合理設計索引,讓innodb在索引鍵上面加鎖的時候盡可能準確,盡可能的縮小鎖定範圍,避免造成不必要的鎖定而影響其他query的執行;

c)盡可能減少基於範圍的資料檢索過濾條件,避免因為間隙鎖帶來的負面影響而鎖定了不該鎖定的記錄;

d)盡量控制事務的大小,減少鎖定的資源量和鎖定時間長度;

e)在業務環境允許的情況下,盡量使用較低階別的事務隔離,以減少mysql因為實現事務隔離級別所帶來的附加成本;

減少死鎖概率的一些建議:

a)類似業務模組中,盡可能按照相同的訪問順序來訪問,防止產生死鎖;

b)在同乙個事務中,盡可能做到一次鎖定所需要的所有資源,減少死鎖產生概率;

c)對於非常容易產生死鎖的業務部分,可以嘗試使用公升級鎖定顆粒度,通過表級鎖定來減少死鎖

產生的概率。

mysql innodb引擎 引數配置優化

innodb flush log at trx commit預設是1 修改為2 效能提公升四倍左右 show global variables like innodb flush log at trx commit set global innodb flush log at trx commit ...

mysql innodb儲存引擎的優化

採用innodb作為儲存引擎時的優化 innodb buffer pool size 如果用 innodb,那麼這是乙個重要變數。相對於 myisam 來說,innodb對於 buffer size 更敏感。mysiam 可能對於大資料量使用預設的 key buffer size 也還好,但 inn...

mysql InnoDB儲存引擎

innodb的組成部分 1.後台執行緒 2.儲存引擎記憶體池 innodb儲存引擎記憶體緩衝池 1.記憶體緩衝池 innodb是基於磁碟儲存的,並將其中的記錄按照頁的方式進行管理。因此,可將其視為基礎磁碟的資料庫系統。在資料庫系統中,由於cpu速度與磁碟速度之間的紅狗,基於磁碟的資料庫系統通常使用緩...