SQL优化思路与解决方案
1.面对问题SQL的思考sql
- 这条查询SQL的语句到底有没有问题?
- 存在什么问题? 什么状况下存在问题?
- 怎么去优化?
2.SQL优化思路数据库
- where查询字段是否创建索引?
- 是否有创建索引可是查询时候没有用到索引,好比说 status != 1 这种查询方式
- 若是有多个查询条件,是否能够使用联合索引? (一个联合索引就能够解决不须要创建三个索引)
- 使用explain去发现问题
- 是否存在深度分页问题? (在select * from查询下若是分页十万条去取数据,将很是恐怖)
- 深度分页问题能够考虑使用子查询(先将查询数据的主键id查询出来,在用in去查询数据字段),主要由于回表问题
- 多条件查询的时候,就是要将数据过滤到最小,因此要将检索的字段顺序排好
- 若是是分页的接口对外暴露,必定要控制分页的大小(50或者100)
- 若是是在操做sql进行统计,是否能够异步? 创建专门统计表去处理,而不是每次查询都在sql中操做一遍
- 若是查询的sql比较复,使用了group by等多个关键字,会建立出多个临时表,影响查询效率
- 考虑数据库参数配置优化
欢迎关注本站公众号,获取更多信息