pgsql索引的使用情况
准备工作
当前新建一张表TestTable,表的数据量为八百多万
为表的ReginId字段新建索引
1 select * from pg_indexes where tablename='testtable';
2 create index testRegion on TestTable ("RegionId");
接下来查看当前表in查询是否走了索引
1、in三条数据,很明显可以看到是经过索引的
2、in多条数据,测试一下比如一万条数据,发现依然走的是索引
3、子查询嵌套子表查询,数据量少的情况一百条数据,测试发现走的索引
4、子查询嵌套子表查询,提升数据量为一千条数据七百条,发现最终走的是全表扫描
对比两次子查询嵌套子表查询数据结果:
第一次测试:子查询条件550条数据走到了索引用时0.237s,数据
第二次测试:子查询条件600条数据未使用索引,总耗时22.662s,总数据
总结:
当子查询条件in的是传来的集合数据,基本上都会走索引去查询,而当子查询嵌套的是
子表查询则会根据查询的数据数量来判断是否走索引