执行sql语句,一个表只能命中一个索引吗?

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】 如 图中 v 表中 字段 vaccination_unit_id 和字段creation_time 分别是两个索引,执行计划中只走了 index:idx_vaccr_vaccination_unit_id(vaccination_unit_id) 一个索引,将语句修改后 又只走了 table:v, index:idx_vaccr_creation_time(creation_time)这个索引


【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】

是的,只能使用一个索引。就和按照目录找章节一样,一次使用一个目录

1 个赞

你建个字段 vaccination_unit_id 和字段creation_time 的联合索引不就行了。。。。

1 个赞

执行sql语句,一个表不一定只能命中一个索引,比如or的可能同时用到2个索引,不过你这个sql只能走一个,单个字段索引过滤的数据都不多的话还是建议用联合索引

1 个赞

两个表联合查询的单SQL,只能使用一个索引