• SQL优化思路与解决方案


    1.面对问题SQL的思考

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

    2.SQL优化思路

    •   where查询字段是否建立索引?
    • 是否有建立索引但是查询时候没有用到索引,比如说 status != 1 这种查询方式
    • 如果有多个查询条件,是否可以使用联合索引? (一个联合索引就可以解决不需要建立三个索引)
    • 使用explain去发现问题
    • 是否存在深度分页问题?  (在select * from查询下如果分页十万条去取数据,将非常恐怖)
    • 深度分页问题可以考虑使用子查询(先将查询数据的主键id查询出来,在用in去查询数据字段),主要因为回表问题
    • 多条件查询的时候,就是要将数据过滤到最小,所以要将检索的字段顺序排好
    • 如果是分页的接口对外暴露,一定要控制分页的大小(50或者100)
    • 如果是在操作sql进行统计,是否可以异步? 建立专门统计表去处理,而不是每次查询都在sql中操作一遍
    • 如果查询的sql比较复,使用了group by等多个关键字,会创建出多个临时表,影响查询效率
    • 考虑数据库参数配置优化
  • 相关阅读:
    Pedometer_forAndroid
    linux改动登陆主机提示信息
    Cocos2d-x-Lua (2.x)脚本开发之 Lua语言基础
    共享库加载时重定位
    寻找志同道合的伙伴
    Leetcode[20]-Valid Parentheses
    storm的集群安装与配置
    CSS样式
    splash启动速度优化
    Android驱动之 Linux Input子系统之TP——A/B(Slot)协议
  • 原文地址:https://www.cnblogs.com/technologykai/p/14067045.html
Copyright © 2020-2023  润新知