常见的sql优化技巧
虽然现今硬件成本已经下降,通过升级硬件提升系统性能也是常用的优化方式。而实时性要求很高的系统,还是要从sql方面进行优化,本文以sqlserver为例演示,其中的优化原理也适用于其他数据库
        优化的一个主要方面就是尽量避免全表扫描,改为索引扫描
操作方法
- 01适当的索引 1)索引就相当于字典的目录,按照索引查找就可以直接定位具体页数,不用整本字典一页一页的查找,效率自然是不言而喻。 2)对于历史数据不太关注的场景,比如订单,通常来说,3年之前的订单数据,很少会需要查询到,最近的订单才是最常用的,那么可以考虑把订单日期作为索引的一个列创建 3)经常需要where查询的字段也作为索引的一个列创建 
- 02尽量不要有空判断的语句,因为空判断将导致全表扫描,而不是索引扫描。 对于空判断这种情况,可以考虑对这个列创建数据库默认值 
- 03尽量不要使用不等于条件,因为,这会导致全表扫描 对于不等于这种情况,考虑改为范围查询解决 
- 04尽量不要使用or条件,因为,这会导致全表扫描 对于or这种情况,可以改为 分别查询,然后 union all 
- 05尽量不要使用左右模糊查询,因为,这会导致全表扫描 对于左右模糊查询的情况,试着改为右侧模糊查询,这样是可以索引查找的 
- 06尽量不要在执行算数运算后的比较,因为,函数、算术运算或其他表达式运算通常将导致全表扫描 对于这种情况,可以考虑冗余部分数据到表中 
- 07尽量使用exists代替in 
- 08尽量避免一次性返回大数据量,可以考虑分页返回 
 赞 (0)
                        
