业务删除数据后,表的查询越来越慢

版本是5.0

TIdb 表需要做表空间整理吗 ?这类问题如何排查?

如果是 delete 之后,然后还会带有 insert 或者 update 的话,表的健康度可能不够好,
会带来查询计划(CBO)优化偏移,简单说 抽样数据不对,就会影响命中,然后就越来越慢

推荐在业务不繁忙的情况,确定 delete 数据被 GC 之后,执行 analyze table ,来重新获取下统计数据,变更下表的健康度…

当然,表的健康度也可以查的
参考:
https://docs.pingcap.com/zh/tidb/stable/statistics#表的健康度信息

另外通过Dashboard 的 慢查询,也很容易获取到相关 SQL

如果删除的数据比较多,还是要做一下reorg的操作,避免伪删除问题。

什么是伪删除

这个具体对应什么操作

TiDB 数据删除后是不会立马回收资源的


参考下文档:https://docs.pingcap.com/zh/tidb/stable/garbage-collection-overview#delete-ranges删除区间

不过你是 5.0,大概率还是表健康度的问题


https://docs.pingcap.com/zh/tidb/stable/statistics#表的健康度信息

https://docs.pingcap.com/zh/tidb/stable/sql-statement-analyze-table#analyze

1 个赞

建议analyze 一下。

学习了

要做碎片处理,其他数据库也这样。所以一般设计上避免出现这样的场景。

如何做碎片整理?

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。