MySQL-MYSQL有办法统计索引使用情况吗
Oracle有个索引统计的功能,可以统计每个索引的使用次数。mysql是否可以加上这个功能或者有办法统计索引使用情况吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Oracle有个索引统计的功能,可以统计每个索引的使用次数。mysql是否可以加上这个功能或者有办法统计索引使用情况吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
Percona版本的information_schema.innodb_index_stats 已经有索引的统计信息。
先来看下原来的表结构。
CREATE TEMPORARY TABLE
INNODB_INDEX_STATS
(table_schema
varchar(192) NOT NULL DEFAULT '',table_name
varchar(192) NOT NULL DEFAULT '',index_name
varchar(192) NOT NULL DEFAULT '',fields
bigint(21) unsigned NOT NULL DEFAULT '0',rows_per_key
varchar(256) NOT NULL DEFAULT '',index_total_pages
bigint(21) unsigned NOT NULL DEFAULT '0',index_leaf_pages
bigint(21) unsigned NOT NULL DEFAULT '0') ENGINE=MEMORY DEFAULT CHARSET=utf8
记录的是每个索引的信息,其中index_total_pages是一个索引的所有page数,index_leaf_pages其中的叶子page数。
这个“表”加一列,统计索引被使用的次数。其中的信息当然需要在执行时统计。所幸的是InnoDB每次使用索引都是统一的入口(index_read), 就在index里面加个字段统计。