逐步分析MySQL从库com_insert无变化的原因

大家都知道com_insert等com_xxx参数可以用来监控数据库实例的访问量,也就是我们常说的QPS。并且基于MySQL的复制原理,所有主库执行的操作都会在从库重放一遍保证数据一致,那么主库的

                        <p>大家都知道com_insert等com_xxx参数可以用来监控数据库实例的访问量,也就是我们常说的QPS。并且基于MySQL的复制原理,所有主库执行的操作都会在从库重放一遍保证数据一致,那么主库的com_insert和从库的com_insert理论上应该是相等的。如下面显示,第二列代表主库,第三列代表从库:</p>

复制代码 代码如下:com_select              22                 1138com_update              36                   37com_insert             133                  135com_delete               0                    0qcache_hits              0                    0Com_replace              0                    0Connections             13                   24

但是我们看另外一个业务:

复制代码 代码如下:com_select               0                   95com_update               0                    0com_insert              92                    0com_delete              20                    0qcache_hits              0                    6Com_replace              0                    0Connections              0                    6

我们可以很明显的看出来,主库有92个写,但是从库0个写,这是为什么呢?

这2个业务唯一的区别就是binlog_format的设置不一样。

复制代码 代码如下:第一个业务show global variables like '%binlog_format%';+---------------+-----------+| Variable_name | Value     |+---------------+-----------+| binlog_format | STATEMENT |+---------------+-----------+

第二个业务show global variables like '%binlog_format%';+---------------+-------+| Variable_name | Value |+---------------+-------+| binlog_format | ROW   |+---------------+-------+

我们来看下com_xxx的官方文档定义: