QS:SQL优化需要注意哪些点?

  1、尽量将被查询字段写出来,尽量避免例如:select * from table_name;如果使用*,数据库需要查询数据字典才能获取表中所有字段,这样会消耗时间。

  2、被排序字段,也可以加索引,例如:order by  column1,column2,这样直接使用索引去排序,会大大提高效率。

  3、对于使用模糊查询的字段,尽量给该字段加索引,但前提是like后第一位不能是%,否则不会使走索引,对该列全局匹配。尽量使用例如:select column1,column2 from table_name where column3 like 'xxx%'。

         4、如果可以,使用rowid查询效率最高。原因rowid组成:对象ID(OBJECTID)+文件ID+块ID+ROWID

CASE:复制1000万行emp数据,在建立索引前后查询时间对比。

 复制emp1表,重复插入数据,开启计时:

create table emp1 as select * from emp1;
insert into emp1 select * from emp1;    
set timing on;
select * from (select * from emp3 order by empno)t where rownum <=10;

`

 

给被排序的字段加索引,查询并计时:

create index emp1_index on emp1(empno);
select * from (select * from emp3 order by empno)t where rownum <=10;