SQL优化思路与解决方案

1.面对问题SQL的思考sql

  • 这条查询SQL的语句到底有没有问题?
  • 存在什么问题? 什么状况下存在问题?
  • 怎么去优化?

 

2.SQL优化思路数据库

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