尽量挑选自己需要的字段进行查询, 不要随便使用 select *,对大数据量,这是个致命的错误。
二:能用exitst关键字的,不要用in
in的子查询大多是表的连接,返回的是实际的数据,而exists返回来的是true或false。
三:对于表的连接一定要对每张表进行筛选完,再进行连接。 否则,就是两张表的全连接,再筛选,效率低下。
四:oracle分页的写法
select * from (select * from tableName where rownum < 10) where rownum > 0;
切记不要写成:
select * from (select * from tableName where rownum>0 and rownum < 10);
五:一条sql完成的事儿,勿要两条sql来完成。
六:尽量使用预编译(绑定变量)的方法来执行sql。
七:多用where 少用having
八:多用union all 少用union。
九:相同功能,相同性能的sql语句,尽量复制,粘贴,务必保证sql语句完全一直。
十:where后面多条件: 记录符合条件数少的放在前面,符合数多的放在后面。
十一:统计行数
select count(1) from tableName;
不要写成:
select count(*) from tableName;
十二:判断记录是否存在
select 1 from var1 where var2 = var3.