玖叶教程网

前端编程开发入门

说说SQl优化之道~~(说说sql优化之道是什么)

非常牛逼的sql语句可能不用写,但是开发过程中注意些技巧,用户体验就大大提升。下面总结的一些方法,有需要的可参考:

1.查询条件尽量使用"="而非"<>"

"<>"意味着放弃索引进行全表扫描。

2.尽量多使用连接查询(join)避免子查询

3.in或者not in要慎重,否则会导制全表查询,如用到删除语句上,不小心数据给删了(以前同事搞过这事)

select * from tb_user where user_no in (44,45,46)

改成

select * from tb_user where user_no between 44 and 46

4.使用order by时尽量加上索引,去掉没有的字段

由于order by基于查询结果集进行排序,如果数据量大,会影响性能

5.关于exists,in的使用

子查询大的用exists,子查询小的用in,这样效率会很高

6.确定只有一条数据时,使用limit 1

limit1可以避免全表查询,找到结果集就不在扫描了

7.不要在where查询字段做表达式操作

select * from tb_user where age/2=20;

改为

select * from tb_user where age=2*20;

8.select *和select 列的使用

二者基本差别不大,但是如果表中有的字段数据量特别大,比如大文本,能不查询出就不要,减少网络传输;同时从代码层面考虑,如果新加一个字段作为预留字段,实际并没多大意义,select * 返回就没必要了,因为程序用到的列者固定的。

9.模糊查询使用

别用双模糊(全表查询),可考虑单模糊查询 ,oracle数据库时可用instr函数

select * from tb_user where user_name like '%卫%'

改为

select * from tb_user where user_name like '%卫'

10.使用Limit实现分页

不仅提高性能,还提高了数据库与应用的传输

11.索引的使用

在使用索引字段作为查询条件时,如果是复合索引,必须使用索引的第一个字段作为查询条件,否则不会用到索引

希望以上对大家有帮助!~

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言