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