pgsql索引失效问题!

毕设小屋 毕业设计 1

现有两表a,b,其中a表的a1字段建立了索引,数据量千万级别,假设in子句查询的结果等同于第二条sql中in的值,或者说in子句查询的数据量小于10个,以下sql的执行计划发现a1字段的索引查询未生效,是什么原因? select * from a where a.a1 in (select b.b1 from b);

执行select * from a where a.a1 in ('1','2','3');索引是生效的!

回复

共1条回复 我来回复
  • 毕设港湾
    这个人很懒,什么都没有留下~
    评论

    当in里面的数据量很大的时候,就不会走索引,用Exists 子表代替 in

    你可以指定索引的。。 select * from a FORCE INDEX( 索引名称 ) where a.a1 in (select b.b1 from b);

    0条评论

发表回复

登录后才能评论