查询不能利用索引

【TiDB 使用环境】测试
【TiDB 版本】6.3.0
【操作系统】centos
【部署方式】VM
【集群数据量】
【集群节点数】
【问题复现路径】
【遇到的问题:查询SQL不能利用索引】
【其他附件:截图/日志/监控】
查询SQL分析截图:


表字段索引定义截图:

收集下表的统计信息,然后再看下执行计划

TiDB的统计信息默认是在数据变更50%的情况下重新收集,但是比较重要的业务健康度低于80执行计划可能就会出现不准的情况, 业务需要对这种情况做定时检测,自动执行analyze table

savedatatime这个字段是什么类型的?

datetime

方便使用explain analyze + sql然后贴一下完整的执行计划吗

把str_to_date函数去掉试试呢?

用 ANALYZE table p_m_enterrecord执行完成后,索引就生效了,是什么原因,能解释一下吗?

那就是统计信息不准确导致优化器没有走这个索引。
执行了analyze table 就相当于手动收集了一下统计信息。

收集下统计信息,看下能走上索引不,不行就直接 hint 绑定下
可能与这个 https://github.com/pingcap/tidb/issues/50080 有关,很快就会修复了,不过你用的不是 LTS 版本,建议尽快升到 LTS 版本

时间字段用区间试试 >= and <

升级到哪个版本是长期维护版本

https://cn.pingcap.com/tidb-release-support-policy/

统计信息是不是已经过期了,在看看查询SQL里是不是有什么函数?因为函数不走索引。