我正在研究一些MySQL性能问题,并希望生成一个报告,说明在一段时间内我的数据库中每个表的插入/更新次数。
我有很多关于服务器性能的数据,例如RDS的磁盘I / O指标。 MySQL的SHOW STATUS
命令显示Queries
甚至Innodb_data_writes
,但这些都在整个服务器级别,而不是粒度。我想详细了解表格级别。
也许我可以打开或使用information_schema
或performance_schema
数据库中隐藏的内容?
答案 0 :(得分:2)
性能模式将表io的统计信息保存在表(甚至索引)粒度上。
见表performance_schema.table_io_waits_summary_by_table
答案 1 :(得分:1)
感谢barat指出this link,建议通过二进制日志获取相关信息。我编写了一个快速脚本,它使用mysqlbinlog
的组合从远程服务器检索二进制日志,并将日志内容的正则表达式解析为以下格式输出所需信息的内容:
Parsed 1,096,063 lines spanning 300 seconds between 2016-09-13 03:05:00 and 2016-09-13 03:10:00
master metrics update = 43570
master metrics insert into = 9
DEFAULT accounts update = 501
DEFAULT users update = 5
DEFAULT logins insert into = 1
mysql rds_heartbeat2 insert into = 1
上在Github上共享