TIDB 索引失效

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题

【遇到的问题:问题现象及影响】

select   count(1) from 
 table_a a  ,
	(
    SELECT
      1096000160009428992 user_id,
      "2023-09-06" c_date
    UNION
    ALL
    SELECT
      1095993953290952704 user_id,
      "2023-09-06" c_date
  ) b
WHERE 
      a.created_at >= b.c_date
  AND a.created_at <  DATE_ADD(b.c_date, INTERVAL 1 DAY)

为什么这个sql table_a表的created_at索引位fullIndexScan呢

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

索引怎么建的呢?

没看出来有啥问题

根据你说的前提,a记录数很小,b通过create_at的区间过滤后数据量也很少。
name最理想的走法是b IndexLookupJoin a,然后a走create_at 索引。
可惜的是tidb的IndexLookupJoin不支持非等值的关联条件,所以只能走hashjoin。

这个表的索引是怎么样的,还有执行计划的截图漏了一部分,都贴出来我们看看

这样是正常的,因为你走的是关联条件,你试想下,你B表里面假如有很多数据,时间都不一致,那a表created_at只能索引全扫描啊