我是删除数据之后过了一天多还没analyze,这不正常啊。我就当这是bug吧,因为其他同样删了大量数据的表还没发现问题
我又发现一张表不走索引,看来不是一张啊,手动执行sql删除数据会这样啊
你理解的是对的,调大tidb_auto_analyze_ratio会更难analyze,是我记错了![]()
自动analyze持久化的是表的总行数以及修改的行数,而analyze配置持久化的是:
| 配置项 | 对应的 ANALYZE 语法 |
|---|---|
| 直方图桶数 | WITH NUM BUCKETS |
| TopN 个数 | WITH NUM TOPN |
| 采样数 | WITH NUM SAMPLES |
| 采样率 | WITH FLOATNUM SAMPLERATE |
| ANALYZE 的列的类型 | AnalyzeColumnOption ::= ( ‘ALL COLUMNS’ |
| ANALYZE 的列 | ColumnNameList ::= Identifier ( ‘,’ Identifier )* |
只有对数据有大量操作导致的不走索引,才可能是analyze的问题,你可以看看这个表的健康度有多少
我暂时就先这样吧,我看了健康度有很多都是0,我只要她会自动analyze就行,我过几天把集群升级到5.4.1
1、 是否自动analyze和开启阈值受几个参数影响
2、 不自动analyze检查下tidb日志是否因GC导致失败
![]()
mark 一下
统计信息有问题应该不会影响实际查询才对吧
不影响查询结果,但是影响查询性能,统计信息不准,执行计划选择的不是最优的。
大批量修改之后,手动analyze 一下,配个定时任务。
统计信息不准会导致优化器选择最优的执行计划产生偏差
这种一般和统计信息有关,检查一下。或者返回数据量占比较高。
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。