我们以 MySQL 引擎运行InnoDB
并使用 phpMyadmin 来管理数据库。在Status
→ 下Query statistics
,phpMyadmin 为我们提供以下内容:
我们想知道这些数字来自哪里,因为我们想创建一个Munin
图表来显示这些统计数据随时间的演变情况。
当我们运行SHOW STATUS;
查询时,我们得到的结果如下:
Innodb_rows_deleted 247555
Innodb_rows_inserted 822911
Innodb_rows_read 694934413
Innodb_rows_updated 15048
正如您所见,尽管两次测试的时间几乎相同,但存在很大差异。
问:您知道phpMyadmin
它的价值来自哪里吗?
答案1
请注意 MySQL 文档显示状态
从这些数字来看,phpmyadmin 一定正在使用,SHOW GLOBAL STATUS;
因为它会显示 MySQL 启动时以来的统计数据。
当您使用时SHOW STATUS;
,它会返回会话级统计信息,当 DB 连接终止时,该统计信息就会出现问题。
答案2
如上所述RolandoMySQLDBA
,首先要记住的是SHOW GLOBAL STATUS
和之间的区别SHOW STATUS
(查看文档)显示的值phpMyadmin
均来自Com_*
变量源代码证实:
服务器状态.php
$sql = "SELECT concat('Com_', variable_name), variable_value
FROM data_dictionary.GLOBAL_STATEMENTS
[...]
// For the percentage column, use Questions - Connections, because
// the number of connections is not an item of the Query types
// but is included in Questions. Then the total of the percentages is 100.
$name = str_replace(array('Com_', '_'), array('', ' '), $name);
比较后,似乎phpMyAdmin
显示的是正确的值(即与MySQL
报告的值相匹配)。
答案3
最好的数据是通过询问 MySQL 本身来获取的。与尝试与 phpMyAdmin 交互相比,实现起来也容易得多。phpMyAdmin 如何获取其数字是任何人的猜测,但我不会相信他们。