mysql的innodb如何定位锁问题_mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?...
mysql的innodb如何定位鎖問題:
在使用 show engine innodb status檢查引擎狀態時,發現了死鎖問題
在5.5中,information_schema 庫中增加了三個關于鎖的表(MEMORY引擎)
innodb_trx???????? ## 當前運行的所有事務
innodb_locks???? ## 當前出現的鎖
innodb_lock_waits? ## 鎖等待的對應關系
mysql如何減少主從復制延遲:
如果延遲比較大,就先確認以下幾個因素:
1. 從庫硬件比主庫差,導致復制延遲
2. 主從復制單線程,如果主庫寫并發太大,來不及傳送到從庫
就會導致延遲。更高版本的mysql可以支持多線程復制
3. 慢SQL語句過多
4. 網絡延遲
5. master負載
主庫讀寫壓力大,導致復制延遲,架構的前端要加buffer及緩存層
6. slave負載
一般的做法是,使用多臺slave來分攤讀請求,再從這些slave中取一臺專用的服務器
只作為備份用,不進行其他任何操作.另外, 2個可以減少延遲的參數:
–slave-net-timeout=seconds 單位為秒 默認設置為 3600秒
#參數含義:當slave從主數據庫讀取log數據失敗后,等待多久重新建立連接并獲取數據
–master-connect-retry=seconds 單位為秒 默認設置為 60秒
#參數含義:當重新建立主從連接時,如果連接建立失敗,間隔多久后重試
通常配置以上2個參數可以減少網絡問題導致的主從數據同步延遲
MySQL數據庫主從同步延遲解決方案
最簡單的減少slave同步延時的方案就是在架構上做優化,盡量讓主庫的DDL快速執行
還有就是主庫是寫,對數據安全性較高,比如sync_binlog=1,innodb_flush_log_at_trx_commit
= 1 之類的設置,而slave則不需要這么高的數據安全,完全可以講sync_binlog設置為0或者關閉binlog
innodb_flushlog也可以設置為0來提高sql的執行效率。另外就是使用比主庫更好的硬件設備作為slave
總結
以上是生活随笔為你收集整理的mysql的innodb如何定位锁问题_mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英雄联盟死兆星墨菲特特效详解 暗星墨菲特
- 下一篇: ieee1284controller怎么