欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

逐步分析MySQL從庫(kù)com_insert無(wú)變化的原因

 更新時(shí)間:2014年05月14日 17:59:04   作者:  
大家都知道com_insert等com_xxx參數(shù)可以用來(lái)監(jiān)控?cái)?shù)據(jù)庫(kù)實(shí)例的訪問(wèn)量,也就是我們常說(shuō)的QPS。并且基于MySQL的復(fù)制原理,所有主庫(kù)執(zhí)行的操作都會(huì)在從庫(kù)重放一遍保證數(shù)據(jù)一致,那么主庫(kù)的com_insert和從庫(kù)的com_insert理論上應(yīng)該是相等的。

大家都知道com_insert等com_xxx參數(shù)可以用來(lái)監(jiān)控?cái)?shù)據(jù)庫(kù)實(shí)例的訪問(wèn)量,也就是我們常說(shuō)的QPS。并且基于MySQL的復(fù)制原理,所有主庫(kù)執(zhí)行的操作都會(huì)在從庫(kù)重放一遍保證數(shù)據(jù)一致,那么主庫(kù)的com_insert和從庫(kù)的com_insert理論上應(yīng)該是相等的。
如下面顯示,第二列代表主庫(kù),第三列代表從庫(kù):

復(fù)制代碼 代碼如下:

com_select              22                 1138
com_update              36                   37
com_insert             133                  135
com_delete               0                    0
qcache_hits              0                    0
Com_replace              0                    0
Connections             13                   24

但是我們看另外一個(gè)業(yè)務(wù):

復(fù)制代碼 代碼如下:

com_select               0                   95
com_update               0                    0
com_insert              92                    0
com_delete              20                    0
qcache_hits              0                    6
Com_replace              0                    0
Connections              0                    6

我們可以很明顯的看出來(lái),主庫(kù)有92個(gè)寫,但是從庫(kù)0個(gè)寫,這是為什么呢?

這2個(gè)業(yè)務(wù)唯一的區(qū)別就是binlog_format的設(shè)置不一樣。

復(fù)制代碼 代碼如下:

第一個(gè)業(yè)務(wù)
show global variables like '%binlog_format%';
+---------------+-----------+
| Variable_name | Value     |
+---------------+-----------+
| binlog_format | STATEMENT |
+---------------+-----------+

第二個(gè)業(yè)務(wù)
show global variables like '%binlog_format%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+

我們來(lái)看下com_xxx的官方文檔定義:

The Com_xxx statement counter variables indicate the number of times each xxx statement has been executed. There is one status variable for each type of statement. For example, Com_delete and Com_update count DELETE and UPDATE statements, respectively. Com_delete_multi and Com_update_multi are similar but apply to DELETE and UPDATE statements that use multiple-table syntax.

從上述文檔,我們只能看到com_xxx是如何運(yùn)作的,但是并不能解釋為什么使用RBR之后com_insert就不變化了。

接下來(lái)我們結(jié)合下面這段文檔來(lái)一起看看。

You cannot examine the logs to see what statements were executed, nor can you see on the slave what statements were received from the master and executed.
However, you can see what data was changed using mysqlbinlog with the options --base64-output=DECODE-ROWS and --verbose.

這2段話結(jié)合來(lái)看,原因應(yīng)該是這樣的:

1、主庫(kù)上接收的是statement的語(yǔ)句,所以com_insert符合觸發(fā)條件,會(huì)隨著業(yè)務(wù)增加。

2、而從庫(kù)是拿到主庫(kù)的binlog后重放更新數(shù)據(jù),但是主庫(kù)的日志格式是row format,這就導(dǎo)致了binlog中記錄的不是statement語(yǔ)句,而是data的變化記錄。

3、這樣從庫(kù)雖然依然能進(jìn)行更新記錄,但是無(wú)法解析出來(lái)這些data變化是一條statement語(yǔ)句導(dǎo)致的還是多條statment語(yǔ)句導(dǎo)致,所以就不在更新com_insert這個(gè)statment counter了。

基本上推論符合現(xiàn)實(shí)情況,但是沒(méi)有code證明,比較遺憾。

另外,如果我們無(wú)法通過(guò)com_insert來(lái)監(jiān)控從庫(kù)的寫入情況,那么我們應(yīng)該監(jiān)控那個(gè)status呢?

個(gè)人建議對(duì)于row格式的實(shí)例,通過(guò)監(jiān)控innodb_rows_inserted來(lái)監(jiān)控寫入情況。

復(fù)制代碼 代碼如下:

show global status like 'innodb_rows_inserted';
+----------------------+------------+
| Variable_name        | Value      |
+----------------------+------------+
| Innodb_rows_inserted | 2666049650 |
+----------------------+------------+

附:(兩個(gè)文檔的官方文檔鏈接)

http://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html#statvar_Com_xxx

http://dev.mysql.com/doc/refman/5.5/en/replication-sbr-rbr.html

相關(guān)文章

  • MySQL性能突然下降的原因

    MySQL性能突然下降的原因

    這篇文章主要介紹了MySQL性能突然下降的原因,幫助大家更好的了解和維護(hù)數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-10-10
  • 在MySQL中創(chuàng)建實(shí)現(xiàn)自增的序列(Sequence)的教程

    在MySQL中創(chuàng)建實(shí)現(xiàn)自增的序列(Sequence)的教程

    這篇文章主要介紹了在MySQL中創(chuàng)建實(shí)現(xiàn)自增的序列(Sequence)的教程,分別列舉了兩個(gè)實(shí)例并簡(jiǎn)單討論了一些限制因素,需要的朋友可以參考下
    2015-12-12
  • mysql 半同步復(fù)制模式使用小結(jié)

    mysql 半同步復(fù)制模式使用小結(jié)

    MySQL半同步復(fù)制是一種數(shù)據(jù)復(fù)制策略,它允許在主服務(wù)器和至少一個(gè)從服務(wù)器之間進(jìn)行數(shù)據(jù)復(fù)制,本文主要介紹了mysql 半同步復(fù)制模式使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • sql server自動(dòng)編號(hào)的三種方法

    sql server自動(dòng)編號(hào)的三種方法

    自增列是最簡(jiǎn)單和常見(jiàn)的方法,適用于大多數(shù)情況,本文介紹了SQL Server中三種常見(jiàn)的自動(dòng)編號(hào)方法:自增列、序列和觸發(fā)器,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • mysql主從同步原理及應(yīng)用場(chǎng)景示例詳解

    mysql主從同步原理及應(yīng)用場(chǎng)景示例詳解

    這篇文章主要為大家介紹了mysql主從同步原理及應(yīng)用場(chǎng)景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Ubuntu手動(dòng)安裝mysql5.7.10

    Ubuntu手動(dòng)安裝mysql5.7.10

    這篇文章主要為大家詳細(xì)介紹了Ubuntu手動(dòng)安裝mysql5.7.10的詳細(xì)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • MySQL查詢表中某列字段相同的重復(fù)數(shù)據(jù)的方法

    MySQL查詢表中某列字段相同的重復(fù)數(shù)據(jù)的方法

    在數(shù)據(jù)庫(kù)查詢中,我們經(jīng)常需要查找表中某列中重復(fù)的數(shù)據(jù),本文將介紹如何使用 SQL 查詢語(yǔ)句來(lái)查找表中某列字段相同的重復(fù)數(shù)據(jù),幫助你快速定位重復(fù)數(shù)據(jù)問(wèn)題并進(jìn)行處理
    2023-08-08
  • CentOS 6.4下編譯安裝MySQL5.6.14教程

    CentOS 6.4下編譯安裝MySQL5.6.14教程

    這篇文章主要為大家詳細(xì)介紹了CentOS 6.4下編譯安裝MySQL 5.6.14教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • mysql數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)點(diǎn)與操作小結(jié)

    mysql數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)點(diǎn)與操作小結(jié)

    這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)點(diǎn)與操作,總結(jié)分析了mysql數(shù)據(jù)庫(kù)修改數(shù)據(jù)表、增刪改查及數(shù)據(jù)庫(kù)函數(shù)基本功能,需要的朋友可以參考下
    2020-01-01
  • Mysql使用簡(jiǎn)單教程(二)

    Mysql使用簡(jiǎn)單教程(二)

    這篇文章主要介紹了Mysql使用簡(jiǎn)單教程(二)的相關(guān)資料,需要的朋友可以參考下
    2016-05-05

最新評(píng)論