一张表:每个月大概有4千万数据;字段type里面就存放3种类型分别用1,2,3来标示(由于重复值很多没有建索引);
其中:查type = 1 量大概有 3.5千万(占了表大部分的量);
type = 2,3 的量就比较少;
发现一个问题:查type = 1 时候速度很慢,查type =2 或type =3 时候速度快了很多;
请问高手有没有好方法解决 查type = 1 的速度快一些,谢谢?
其中:查type = 1 量大概有 3.5千万(占了表大部分的量);
type = 2,3 的量就比较少;
发现一个问题:查type = 1 时候速度很慢,查type =2 或type =3 时候速度快了很多;
请问高手有没有好方法解决 查type = 1 的速度快一些,谢谢?
如果不是OLAP,索引确实没必要。如果服务器是多CPU,可以考虑用并行查询来优化之。
when type = 3 then 3
else null
);
或
create index x on table_x(decode(type, 2, 2, 3, 3));
于是可以应用下HINT,
select /*+ALL_ROWS_FIRST N*/ * from table1 where type =1 这样可以快速返回前N行...JUST 一些些建议