非常慢的分区表analyze语句

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】7.5.0

【遇到的问题:问题现象及影响】
慢查询里面看到的关于分区表的很慢的analyze语句,这个表是分区表,

这种分析语句是分析什么的?为什么会这么慢?
该表看了下数据量不多几千条,但是分区数量测试自动化脚本搞出来1000个分区
ANALYZE TABLE test_vegas2.win_ticket PARTITION p366752 INDEX PRIMARY;

看下mysql.analyze_jobs表中数据

手动发起的,还是自动调度触发的?

自动的

不知道是不是这条

看起来应该是merge global比较慢,你观察下,是不是收集每个分区后都要merge global啊

有可能是这一步慢

对于分区表来说,分区越多越慢,对于数据库来说每个分区相当于一个表,也就是说,1000多个分区相当于分析了1000多张表

和数据量感觉关系不大,分区多了就慢

数据量越大肯定analyze越慢,数据多了采样的数据就多,分析起来消耗资源就多。
当然分区数也是有影响,尤其是少量数据的分区,相关性会更大。

建议把这个分区表改成普通表。
要将分区表 win_ticket 转换为非分区表,可以执行以下语句:

ALTER TABLE win_ticket REMOVE PARTITIONING

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。