tidb analyze table 用了3小时

tidb 5.0.3
analyze table xxx; 2.7亿条记录, 用了3个小时,为啥会这么久。

在 TiDB 中执行 ANALYZE TABLE 语句比在 MySQL 或 InnoDB 中耗时更长。InnoDB 采样的只是少量页面,但 TiDB 会完全重构一系列统计信息。适用于 MySQL 的脚本会误以为执行 ANALYZE TABLE 耗时较短

https://docs.pingcap.com/zh/tidb/stable/statistics#统计信息的收集

资源充足的话可以调整下analyze的并发度。
https://docs.pingcap.com/zh/tidb/stable/statistics#控制-analyze-并发度

确认下这个analyze是手动执行还是auto analyze,auto analyze的统计信息收集并发度等相关参数是1,数据量大的话会更慢,另外看下磁盘IO性能。

低峰期使用下面系统变量提高 analyze 速度
set @@session.tidb_distsql_scan_concurrency=60;
set @@session.tidb_index_serial_scan_concurrency=10;
set @@session.tidb_build_stats_concurrency=60;

1 个赞

是auto的,这种auto的可以调大不。
磁盘IO 不大,使用率20%。

auto的暂时调不了

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