【 TiDB 使用环境】生产环境
【 TiDB 版本】6.5.2
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
表oms_way_address开启TiFlash后,使用 USE INDEX 、force index 指定索引后仍然走TIFLASH,analyze table后仍是如此。
此表1000万条记录,按 in way_billcode查询20条数据耗时2秒,关闭表oms_way_address的tiflash后,执行只需要0.1秒。
【资源配置】
【附件:截图/日志/监控】
Kongdom:
tidb配置文件中的这个配置项配置的什么?
tidb_isolation_read_engines = tikv,tiflash,tidb
cy6301567
(Ti D Ber 9ng R8 Og M)
2023 年8 月 31 日 08:58
4
统计信息不准确:TiDB使用统计信息来优化查询计划,如果统计信息不准确,TiFlash可能会选择不合适的索引,导致指定索引失效。解决方法是定期收集和更新统计信息,可以使用"ANALYZE TABLE"语句来手动更新统计信息。
TiFlash元数据同步问题:** 如果TiFlash的元数据与TiDB的元数据不一致,也可能导致指定索引失效。确保TiFlash的元数据与TiDB保持同步,可以尝试重启TiFlash实例,或者使用"flush privileges"等命令来刷新权限和元数据信息。
1 个赞
Kongdom
(Kongdom)
2023 年8 月 31 日 08:59
5
2 个赞
这个sql 应该走kv的,都没啥统计分析,函数啥的,就走flash了。
analyze 跑一下,再看看执行计划
1 个赞
h5n1
(H5n1)
2023 年8 月 31 日 09:10
7
优化器评估有问题,试试drop stats XXX 然后analyze方式更新统计信息, 这期间有可能影响其他SQL 。
1 个赞
指定的查询引擎也没有生效。
(刚才那张表正常了,我换了一张表,出现了同样的状况)
cy6301567:
ANALYZE TABLE
ANALYZE TABLE、flush privileges 后问题依旧
hint里面指定索引/*+ USE_INDEX(t1, idx1) */ 也不行?
1 个赞
h5n1:
drop stats XXX
drop stats oms_way_transport;
analyze table oms_way_transport ;
问题依旧
这么奇怪,也无法确认恢复正常的表是啥步骤导致的?之前执行过的步骤都试下看看是哪个有效果?
1 个赞
删掉tiflash 副本后,不需要提示,能走索引。再开启Tiflash后又走Tiflash 了
很玄,早上一看,两个表都走tiflash了,昨天恢复正常的表执行了删除tiflash副本重新添加、手动收集统计信息操作(两个表一起执行这些操作后,1个走tikv,一个走tiflash)。
Kongdom
(Kongdom)
2023 年9 月 1 日 00:35
19
相同操作,有的走有的不走,那查询语句和表结构一样么?确实太玄了。
1 个赞
表结构大体一致,查询SQL也是类似的单表查询,where条件和索引字段是一样的。