在我们的实时MySQL 5.5数据库服务器上,我们使用MySQL工作台运行手动查询,检查正在运行的查询以查看发生了什么,等等。
我今天注意到,在“服务器状态”选项卡上有非常多的“每秒查询”和"InnoDB每秒写入“,而在显示所有正在运行的查询的”客户端连接“列表的选项卡上,几乎没有显示任何查询。也许每隔几秒钟就有2到3次。
我在这里误解了什么?这两个标签加起来一点也不相加。

编辑-这是SHOW ENGINE INNODB STATUS;的输出
--------------
ROW OPERATIONS
--------------
0 queries inside InnoDB, 0 queries in queue
2 read views open inside InnoDB
Main thread process no. 24494, id 139631733794560, state: sleeping
Number of rows inserted 36474186, updated 163927609, deleted 11892445, read 1747097889216
1.06 inserts/s, 13.91 updates/s, 0.00 deletes/s, 33615.95 reads/s
----------------------------
END OF INNODB MONITOR OUTPUT
============================发布于 2014-09-22 17:45:24
您需要的是更好的InnoDB存储引擎的可视化表示

想一想触发写入可以被监视的事情。
写操作数
用InnoDB编写的字节
这些都是在InnoDB内外被搅动的东西之一。然而,这并不是一切。检查一下关于状态变量的MySQL文档。
我猜MySQL工作台只是在监视因诺布_数据_写入。
如果数据写入量很高,则在以下情况下
1.06 inserts/s, 13.91 updates/s, 0.00 deletes/s这大约是每秒15个查询,您可能需要花费一些时间来调优InnoDB。由于InnoDB做模糊检查点g,如果您看到常量写入永不减弱,则InnoDB将显示写入中的瓶颈。可能是操作系统或VM造成的.。这也可能是由于一个较小的InnoDB缓冲池(我看到它是100%满)。大量的读取会将数据和索引页引入缓冲区池。来自插入和更新的新的或更新的数据和索引页也需要压缩到缓冲区池中。也许需要一个更大的缓冲池。
从另一个角度看访问的行数。
36474186 Rows from INSERTs
163927609 Rows from UPDATEs
11892445 Rows from DELETEs
212294240 Rows Written
1747097889216 from SELECTs当您将1747097889216除以212294240时,这意味着您更新的每一行都有8229.6行正在读取。这与对每个插入、更新或删除的2245.46 (33165.95/14.97)选择一起进行。我可以看到写在缓冲池中的压缩。这让我觉得缓冲区池、日志缓冲区和重做日志都应该增加。
https://dba.stackexchange.com/questions/77254
复制相似问题