我最近查询遇到一问题:
一张表table1 里面很字段,其中有两个字段:字段A,字段B,都有建普通索引(Normal);其中B字段重复值比较多,
我用这两个字段去查询速度很慢(where 字段a>= 时间 and 字段a< 时间 and 字段B = 值),表大概有2千万数据量;
我发现如果单独用里面一个字段查询速度很快,但两个同时用就变慢了;
我想优化想不出好方法,请高手指点,谢谢!!!
一张表table1 里面很字段,其中有两个字段:字段A,字段B,都有建普通索引(Normal);其中B字段重复值比较多,
我用这两个字段去查询速度很慢(where 字段a>= 时间 and 字段a< 时间 and 字段B = 值),表大概有2千万数据量;
我发现如果单独用里面一个字段查询速度很快,但两个同时用就变慢了;
我想优化想不出好方法,请高手指点,谢谢!!!
where TO_CHAR('字段a','YYYY-MM-DD')>= 时间 and TO_CHAR('字段a','YYYY-MM-DD')< 时间 and 字段B = 值
create bitmap index t1_index on table1(字段B);
1、查看执行计划,
2、看a和b检索是否利用了index。
3、如果都用了index检索,那么在b上用位图索引看看。
...
因为你的B重复值太多了吧?B的取值范围大概有多少?比如你的2kw数据里面B的可能值只有1k,那还是别建普通索引了还快些,或者像楼上说的建个位图索引试试。