tidb 单表过大无法进行analyze

执行前临时调整会话参数,适配超大表场景:

SET SESSION tidb_analyze_mem_quota = 8589934592;
SET SESSION tidb_analyze_concurrency = 2;

调整 ANALYZE 轻量参数,减少采样量、限制并发,让 ANALYZE 轻量化执行

有啥参考吗 :handshake:

可以先试着定位ANALYZE失败的核心原因

在TiDB 的日志tidb.log ,搜索关键词 analyze table看一下具体描述

还有可以通过分表分区试试

加并行

这点数据不至于的,自动analyze有12小时的限制,可以通过系统变量改。
但是手动analyze速度很快,30多亿行的数据个把小时就完事了。