【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】7.5
【复现路径】做过哪些操作出现的问题
昨天导入一些数据,然后看了下sql执行计划不对,再看了下表的健康度好多0的,为什么没有自动分析呢
触发策略:如果一张新表达到 1000 条记录,并且在 1 分钟内没有写入,会自动触发。
https://docs.pingcap.com/zh/tidb/stable/sql-faq#在-tidb-中-auto-analyze-的触发策略是怎样的
2 个赞
要是导数进去的,可能还没分析到,分析哪有那么快
数据变化较小
SPL也先看一眼行不,健康度都0了还变化小
这里面有些表数据都是上万了,空库导入,昨天导入的
昨天导入的,今天看的,已经很久了
tidb_enable_auto_analyze 参数打开了吗?
是不是tidb_auto_analyze_ratio没达到。
看下自动收集相关参数,参考: https://docs.pingcap.com/zh/tidb/stable/statistics#自动更新
再看下自动收集任务执行情况,查询mysql.analyze_jobs
正在执行的统计信息收集任务以及过去 7 天内的历史任务记录
1 个赞
参数是开的, 7.5默认安装
手动分析能成功吗?
可以,刚才都成功分析了
开了
能不能找张可以写数据的小表,再写一倍的数据进去,看看能不能触发。
这张大的分区表也是手动分析的?
是手工分析的,看了下日志,自动分析非常慢,一个一个分区分析的,手工快很多
嗯,大量迁移数据还是手工分析下比较好,自动的默认并发低,比较慢,目的是减少对线上的影响
1 个赞
通过什么方式导入的呢?比如br还原就需要手工analyze一下。
1 个赞