GreatSQL社区

搜索

[已解决] mysql如何查询每个索引占用空间大小

855 3 2023-8-14 12:09
在mysql5.7版本中,如何能查到表里具体某个索引的大小? 是根据字段大小,所有字段长度加起来然后乘以行数去预估大小吗?
全部回复(3)
yejr 2023-8-14 13:47:13
可以利用innodb_space 或 innblock扫描索引结构,统计各个索引占用的page数量,即可计算出索引物理大小

具体可参考这几篇文章

- InnoDB表聚集索引层高什么时候发生变化, https://mp.weixin.qq.com/s/o4fHfIG6MAG460Pw7p7Msg
- 浅析InnoDB索引结构, https://mp.weixin.qq.com/s/yfi5XikDJlh6-nS-eoJbcA
- innblock | InnoDB page观察利器, https://mp.weixin.qq.com/s/sFaQ2dFIvZk7ujUuC6x70A

多问下,你想查看这个的目的是什么呢
fander 2023-8-16 12:32:48
你提的问题非常有意思。我查阅了sys库等mysql元数据库信息,好像没办法直接解决你的需求。叶老师推荐的工具见 https://github.com/jeremycole/innodb_ruby/wiki
这是一个MySQL专家维护的开源软件,是不建议直接用于生产环境的。并且他也不支持8.0。

这个是一个很好的给MySQL feature需求,你看看是否可以给MySQL官方提这个开发需求,或者给GreatSQL提,哈哈。
yejr 2023-8-16 14:53:57
fander 发表于 2023-8-16 12:32
你提的问题非常有意思。我查阅了sys库等mysql元数据库信息,好像没办法直接解决你的需求。叶老师推荐的工具 ...

先了解目的哈,看是否大众需求,如果需求确实有必要那就可以提 :)
fengzhencai

6

主题

0

博客

23

贡献

新手上路

Rank: 1

积分
40

助人为乐(铜)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2025-1-18 15:50 , Processed in 0.021610 second(s), 17 queries , Redis On.
快速回复 返回顶部 返回列表