Mysql 返回无效结果的缓冲池使用率百分比查询
我试图计算数据库服务器上的缓冲池使用情况,但我过去使用的查询给出的结果不准确:Mysql 返回无效结果的缓冲池使用率百分比查询,mysql,buffer,information-schema,Mysql,Buffer,Information Schema,我试图计算数据库服务器上的缓冲池使用情况,但我过去使用的查询给出的结果不准确: mysql> SELECT CONCAT(FORMAT(DataPages*100.0/TotalPages,2),' %') BufferPoolDataPercentage FROM ( SELECT variable_value DataPages FROM information_schema.glob
mysql> SELECT CONCAT(FORMAT(DataPages*100.0/TotalPages,2),' %')
BufferPoolDataPercentage
FROM ( SELECT variable_value DataPages
FROM information_schema.global_status
WHERE variable_name = 'Innodb_buffer_pool_pages_data'
) A,
( SELECT variable_value TotalPages
FROM information_schema.global_status
WHERE variable_name = 'Innodb_buffer_pool_pages_total'
) B;
+--------------------------+
| BufferPoolDataPercentage |
+--------------------------+
| 145.55 % |
+--------------------------+
1 row in set (0.01 sec)
有人能提供修复建议吗?您使用的是什么版本 是否涉及
ROW\u FORMAT=COMPRESSED
变更日志说
-----2013-02-05 5.6.10通用性和2013-02-05 5.5.30——增加或更改的功能——InnoDB-----
使用压缩表时,计算中的内存使用量的计算非常复杂,因为压缩页可能小于16KB或用户指定的大小。虽然可以从表中检索此信息,但该操作成本很高。以下新状态变量有助于简化涉及缓冲池内存使用的计算:
[Innodb_buffer_pool_bytes_data](http://dev.mysql.comhttps://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html#statvar_Innodb_buffer_pool_bytes_data), to supplement [Innodb_buffer_pool_pages_data](http://dev.mysql.comhttps://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html#statvar_Innodb_buffer_pool_pages_data).
[Innodb_buffer_pool_bytes_dirty](http://dev.mysql.comhttps://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html#statvar_Innodb_buffer_pool_bytes_dirty), to supplement [Innodb_buffer_pool_pages_dirty](http://dev.mysql.comhttps://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html#statvar_Innodb_buffer_pool_pages_dirty).
(Bug#15842637)
-----2010-07-06 5.5.5开发人员里程碑——修复了bug——InnoDB-----------2010-05-06 5.1.47——漏洞修复——InnoDB----- information_schema.global_status表中innodb_buffer_pool_pages_total和innodb_buffer_pool_pages_misc的值可能计算不正确。(Bug#52983) 有可能您的两次
选择
并不是用相同的数据完成的。一开始可能更安全
SELECT variable_value TotalPages
FROM information_schema.global_status
WHERE variable_name LIKE 'Innodb_buffer_pool_pages%'
我检查了150多台服务器,发现了您提到的另一个异常情况。您使用的是什么版本 是否涉及
ROW\u FORMAT=COMPRESSED
变更日志说
-----2013-02-05 5.6.10通用性和2013-02-05 5.5.30——增加或更改的功能——InnoDB-----
使用压缩表时,计算中的内存使用量的计算非常复杂,因为压缩页可能小于16KB或用户指定的大小。虽然可以从表中检索此信息,但该操作成本很高。以下新状态变量有助于简化涉及缓冲池内存使用的计算:
[Innodb_buffer_pool_bytes_data](http://dev.mysql.comhttps://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html#statvar_Innodb_buffer_pool_bytes_data), to supplement [Innodb_buffer_pool_pages_data](http://dev.mysql.comhttps://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html#statvar_Innodb_buffer_pool_pages_data).
[Innodb_buffer_pool_bytes_dirty](http://dev.mysql.comhttps://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html#statvar_Innodb_buffer_pool_bytes_dirty), to supplement [Innodb_buffer_pool_pages_dirty](http://dev.mysql.comhttps://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html#statvar_Innodb_buffer_pool_pages_dirty).
(Bug#15842637)
-----2010-07-06 5.5.5开发人员里程碑——修复了bug——InnoDB-----------2010-05-06 5.1.47——漏洞修复——InnoDB----- information_schema.global_status表中innodb_buffer_pool_pages_total和innodb_buffer_pool_pages_misc的值可能计算不正确。(Bug#52983) 有可能您的两次
选择
并不是用相同的数据完成的。一开始可能更安全
SELECT variable_value TotalPages
FROM information_schema.global_status
WHERE variable_name LIKE 'Innodb_buffer_pool_pages%'
我检查了150多台服务器,发现了您提到的另一个异常情况。您使用的MySQL版本是什么?我使用的是5.6.28版的MySQL(Percona)您使用的MySQL版本是什么?我使用的是5.6.28版的MySQL(Percona)我使用的是5.6.28版的MySQL(Percona)@user3299633-我怀疑这是否值得担心。你可以在bugs.mysql.com上提交一份bug报告。我使用的是mysql(Percona)@user3299633的5.6.28版——我怀疑这是否值得担心。您可以在bugs.mysql.com上提交bug报告