谈谈 sql 优化【2012年7月26日 小冬分享】

本文分享了提高SQL查询效率的方法,包括合理使用索引、优化查询语句结构、减少数据库访问次数等实用技巧。

 

今天说说sql的一些优化【小冬】

1、索引,索引能有效提高查询的效率,但是在表中插入或更新数据时,将有额外的操作来维护索引,从而降低插入或更新的效率,还有索引占用存储空间,所以索引并不是越多越好,而且应尽量避免在建立了索引的数据列上进行计算,not,<>,!=,IS NULL,IS NOT NULL和使用函数的操作,索引字段 不要有null值 。

2、有时UPDATE、SELECT 语句写得很复杂(嵌套多级子查询),这时可以考虑适当拆成几步,先建立一些临时数据表,再进行关联操作。

3、避免在WHERE子句中使用in,not in,可以使用 exist 和not exist代替 。

4、尽量少使用select * from table这种方式,知道自己想要的字段的话应该写上。

5、尽量减少访问数据库的次数:不要在循环里执行语句,可以先存到变量,在循环体外一次执行。

6、用Where子句替换having子句,having子句只会在检索出所有记录之后才对结果集进行过滤。

7、对同一个表update不同字段,可以的话应该写在一条语句上。

 

 

 

10**翔(广州) 16:49:44 

2和3都印象非常深刻。

10**敏 16:57:28 

not in直接不用。。至于in  

in表的数据量越大,in 的字段越多,就越慢,反之,也可以用in 不用exists    差不了多少吧 

10小冬(珠海) 17:01:53 

sql语句执行的顺序:from 表 where 过滤 得到select的结果 再group by分组完后根据having的条件过滤 再order by排序 

 


 
我自己感觉sql优化其实是门艺术,你只要领悟得了其中的精髓、其中的内含,那我相信你很快会成为一名优秀的 数据库大师,你只需再往前一步,成为大师,只是时间问题。
 
可能你会说作为软件开发人员,对数据库不需要太深入,那我想说的是,如果你只想当一名码奴,那可以不需要深入,但是如果你想继续走这条道,不被“剥削”,那我想你不深入  可能不行。
 
花点时间深入学习,多动动手,一定会有意想不到的效果,深入去学习数据库,你一定会有所惊喜,但我也得告诉你,越深入 有时也会越痛苦,但 痛并快乐着,这个慢慢去体会吧!
 
横线下面是俺抒发一下自己的感受,当我没说。
 
        
                                                         add by Johnny

 

 

本文出自 “新博客-http://cfei.net” 博客,请务必保留此出处http://johnny84.blog.51cto.com/2855387/944423

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值