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