我正在调查一些MySQL性能问题,并希望生成一份报告,说明在一段时间内对数据库中的每个表进行了多少次插入/更新。
一般来说,我有很多关于服务器性能的数据,比如RDS的磁盘I/O指标。MySQL的SHOW STATUS
命令显示Queries
甚至Innodb_data_writes
,但这些都是整个服务器级别的,根本不是细粒度的。我想把细节都写到桌子上。
也许在information_schema
或performance_schema
数据库中隐藏了一些我可以打开或使用的东西?
发布于 2017-02-15 18:29:50
性能模式在表(甚至索引)粒度上保存表io的统计信息。
请参阅表performance_schema.table_io_waits_summary_by_table
发布于 2016-09-17 02:12:42
感谢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
在https://github.com/sellerlabs/mysql-writes-per-table的Github上分享的代码
https://stackoverflow.com/questions/39459185
复制相似问题