小表 更新统计信息慢

【 TiDB 使用环境】生产环境
【 TiDB 版本】 v6.5.3
更新小表统计信息,要30分钟以上

show analyze status; 看一下,是不是有其他的统计信息还在收集

running的就一条

咨询下啊,统计信息要在每个tidb_server上执行一次吗

是的,为了确保 TiDB 优化器可以生成最佳的执行计划,需要在每个 TiDB Server 上执行以下 SQL 语句来收集统计信息:

analyze table customer;
analyze table district;
analyze table history;
analyze table item;
analyze table new_order;
analyze table order_line;
analyze table orders;
analyze table stock;
analyze table warehouse;
analyze table nation;
analyze table region;
analyze table supplier;

这些语句将为每个表收集统计信息,以便 TiDB 优化器可以根据这些信息生成最佳的执行计划。

TiDB Server 在执行查询时,确实会使用多个 CPU。TiDB Server 会将查询请求分配给多个 Goroutine 并行执行,以提高查询效率。因此,如果查询请求较多,TiDB Server 的 CPU 使用率可能会较高。

关于统计信息的问题,统计信息是用于优化查询计划的重要信息,如果统计信息不准确或者过期,会导致查询计划选择不合适的执行方式,从而影响查询性能。因此,建议定期更新统计信息,以保证查询计划的准确性和性能。

关于更新统计信息的时间,建议在业务低峰期执行,以避免对业务的影响。如果更新统计信息的时间过长,可能是因为表的数据量较大,或者统计信息更新的频率较低,导致统计信息过期,需要重新计算。在这种情况下,可以考虑增加统计信息更新的频率,或者使用采样统计信息的方式来加快更新速度。同时,也可以考虑优化 TiDB Server 的配置,以提高查询性能。

在任意一个TiDB节点执行即可,表妹GPT有误。

是的是的

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