-
适当的索引
1)索引就相当于字典的目录,按照索引查找就可以直接定位具体页数,不用整本字典一页一页的查找,效率自然是不言而喻。
2)对于历史数据不太关注的场景,比如订单,通常来说,3年之前的订单数据,很少会需要查询到,最近的订单才是最常用的,那么可以考虑把订单日期作为索引的一个列创建
3)经常需要where查询的字段也作为索引的一个列创建
-
尽量不要有空判断的语句,因为空判断将导致全表扫描,而不是索引扫描。
对于空判断这种情况,可以考虑对这个列创建数据库默认值
-
尽量不要使用不等于条件,因为,这会导致全表扫描
对于不等于这种情况,考虑改为范围查询解决
-
尽量不要使用or条件,因为,这会导致全表扫描
对于or这种情况,可以改为 分别查询,然后 union all
-
尽量不要使用左右模糊查询,因为,这会导致全表扫描
对于左右模糊查询的情况,试着改为右侧模糊查询,这样是可以索引查找的
-
尽量不要在执行算数运算后的比较,因为,函数、算术运算或其他表达式运算通常将导致全表扫描
对于这种情况,可以考虑冗余部分数据到表中
-
尽量使用exists代替in
-
尽量避免一次性返回大数据量,可以考虑分页返回
相关文章
- 10-12Mybatis执行SQL的两种方式:SqlSsession与Mapper接口
- 10-12【编译原理笔记16】代码优化:流图,常用代码优化方法, 基本块的优化
- 10-12分页加查询的sql语句
- 10-12GPS卫星授时器常用的同步方式
- 10-12最常见的Android内存优化方式及防止泄漏造成OOM总结篇
- 10-12SQL查询语句中的 limit 与 offset 的区别
- 10-12sql语句中的 inner join 、 left join 、 right join、 full join 的区别
- 10-12sql语句中的left join,right join,inner join的区别
- 10-12重温sql语句中的join操作
- 10-12ssm框架中,mybatis的sql语句日志输出