以前给大家介绍过MySQL中的统计信息,相信大家也都了解了。那么统计信息是存放在哪里呢?我们怎么去查看?
在MySQL中提供了两个表记录统计信息的相关内容,分别是 innodb_table_stats与innodb_index_stats。下面就这两个表的内容,与大家进行一些分享。
innodb_table_stats
这个表里面的内容还是比较好理解
重要的列:
通过这些信息我们可以算出聚集索引的大小:
innodb_index_stats
这个表里面输出的内容相对会比较复杂一些。
表结构和测试数据:
我们主要关注的的列:
通过这个表我们可以查看索引选择性如何,并且可以看到组合索引中每一列选择性如何,还可以计算索引的大小:
总 结
数据库中的一些系统表对DBA是非常重要的,可以帮助我们排查问题、性能分析、去更好的了解一些机制。
innodb_table_stats与innodb_index_stats两张表我们可以了解统计信息、计算索引的大小、索引的选择性如何,也可以做到监控中。
通过5.7的MySQL中添加了Sys Schema也就是让大家不用通过去查看代码的方式去排查各种问题、故障处理等,可见对系统表的学习在日后会更重要。
参考资料:
https://dev.mysql.com/doc/refman/5.7/en/innodb-persistent-stats.html