如何查询没有用过的索引

【 TiDB 使用环境】生产环境 4013
【复现路径】
哪个视图可以查询没有用过的索引,我没有找到,想着删除无用索引

目前没这个功能

是不是不需要这个功能,tidb索引多了,也不影响插入,跟mysql不一样

:joy:可不能随便删,现在用不到不代表以后用不到。有一些索引是为特殊场景预留的。

1 个赞

目前tidb应该没有专门功能记录这个,但是可以从cluster_slow_query和STATEMENTS_SUMMARY_HISTORY的INDEX_NAMES字段获取使用情况,如果STATEMENTS_SUMMARY_HISTORY中没有被驱逐,可以理解就是一段时间内索引使用情况

1 个赞

要动表的索引,建议三思而后行,尤其需要提前和表的全部业务使用方一一确认清楚

嗯,没有这个功能就算了

没有对应的视图可以查

没这个功能,其实这个功能很有用,提过需求了貌似没有排期

先设置让它不可见,然后再执行语句,如果语句执行效率没有影响,说明索引没有使用

没有这个统计信息的,你可以看是否有重复索引,给优化掉。
把索引改为不可见,一段时间没有人喊叫,那就可以删除了,哈哈哈

:yum:换个思路,已有索引 减去 一段时间使用索引 是不是就是 未使用索引。

目前好像只能统计到一段时间使用的索引

1 个赞

你是懂运维的 :yum:

1 个赞

哈哈哈,必须的 :stuck_out_tongue_closed_eyes:

你这太危险了,万一有那种隔很长时间才执行的sql,跑过来发现索引没了,并发量大的话集群就要嗝屁了。

哈哈,这样是准备吃席的节奏 :sweat_smile:

不管是什么数据库,索引肯定会影响写入的吧

不但影响写入,空间也是嗷嗷大,有的表索引空间都比表大

暂时没有此功能

tidb加索引对写入性能影响更大