BT6*_*643 3 mysql innodb mysql-workbench mysql-5.5
在我们的实时MySQL 5.5数据库服务器上,我们使用MySQL Workbench运行手动查询、检查正在运行的查询以查看发生了什么等。
我今天注意到在“服务器状态”选项卡上有非常多的“每秒查询数”和“每秒 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
============================
Run Code Online (Sandbox Code Playgroud)
您需要的是 InnoDB 存储引擎的更好的可视化表示
想一想哪些触发写入的事情可以被监控
写操作数
用 InnoDB 写入的字节数
这些是 InnoDB 内部和外部正在搅拌的东西。然而,这还不是全部。检查有关状态变量的MySQL 文档。
我的猜测是 MySQL Workbench 只是在监视Innodb_data_writes。
如果数据写入很高,鉴于此
1.06 inserts/s, 13.91 updates/s, 0.00 deletes/s
Run Code Online (Sandbox Code Playgroud)
这大约是每秒 15 个查询,您可能需要花一些时间调整 InnoDB。由于InnoDB 执行模糊检查点,如果您看到永不减弱的持续写入,InnoDB 将揭示写入瓶颈。这可能是由于 OS 或 VM 造成的。这也可能是由于 InnoDB 缓冲池过小(我看到它已 100% 已满)。大量读取会将数据和索引页带入缓冲池。来自 INSERT 和 UPDATE 的新的或更新的数据和索引页也需要挤入缓冲池。也许一个更大的缓冲池是有序的。
换个角度看访问的行数
36474186 Rows from INSERTs
163927609 Rows from UPDATEs
11892445 Rows from DELETEs
212294240 Rows Written
1747097889216 from SELECTs
Run Code Online (Sandbox Code Playgroud)
当您将 1747097889216 除以 212294240 时,这意味着对于您更新的每一行,有 8229.6 行正在被读取。这与每个 INSERT、UPDATE 或 DELETE 的 2245.46 (33165.95/14.97) SELECT 一致。我可以看到写入挤压到缓冲池中。这让我觉得Buffer Pool、Log Buffer、Redo Logs都应该增加。
归档时间: |
|
查看次数: |
13923 次 |
最近记录: |