【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题 从6.0.0升级到7.1.0
【遇到的问题:问题现象及影响】
所有的索引不生效了
不强制使用索引,就非常慢,大概三四秒,强制使用索引就几十毫秒
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题 从6.0.0升级到7.1.0
【遇到的问题:问题现象及影响】
所有的索引不生效了
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
表的健康度是99,也做过表分析了,也重启过整个集群
explain analyze看下
强制加了索引explain analyze下看看
看着走索引没毛病啊,为啥优化器选择走tablerangescan啊。。。
你不加limit试下
explain format=‘verbose’ select * from 这个语句查询下代价呢? 是不是优化器任务不走索引的代价比较小
重建下索引试试
admin check index也可以试试
表里的数据大概有100亿行,重建索引,要好几天
set global tidb_ddl_reorg_worker_cnt=10
set global tidb_ddl_reorg_batch_size=256
这两个参数调整大,能大幅增加建索引速度
新建一个其他的试试,等也是等着
show index from table;
按照mysql的经验,有可能是这张表频繁的删写,导致索引基数比较高。
优化器在判断时,认为走索引的代价比全表扫描高。