zoukankan      html  css  js  c++  java
  • Mysql中 SQL的执行过程与优化

    sql执行的过程:

    1、客户端发送一条sql给服务器,sql服务器的监听端口响应客户端的请求;
    2、服务端通过权限检查之后,先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果,否则进入下一阶段;
    3、服务器端进行sql解析,即通过sql解析器检查是否有语法错误,形成解析树;然后进行预处理,即处理解析树,比如常量如何处理、sql中的计算怎么处理等;再由优化器根据该sql所涉及到的数据表的统计信息进行计算,生成对应的执行计划。
    4、Mysql根据优化器生成的执行计划,调用存储引擎的API来执行查询;
    5、将结果放一份到缓存中,同时返回一份给客户端。
    sql执行最大的瓶颈在于磁盘的IO,即数据的读取;不同sql的语法,会造成不同执行计划的执行,而不同的执行计划在IO上面临完全不一样的数量级,从而造成性能的差距。

    sql的优化经验

    sql的优化实质是让mysql中的查询优化器选择一个符合我们SQL计划的执行方案,即让查询优化器按照开发人员的想法做事。
    why? 查询执行计划的执行会导致IO,不同的查询执行计划会导致不同的IO次数,从而导致性能的差异。查询执行计划设计得好,IO次数就少,此时的sql性能就更好。

  • 相关阅读:
    WINNER队成立(第二天)
    新学期组队合作
    构建之法第8、9、10章
    第一阶段冲刺(第一天)
    作业六:小学生四则运算之NABCD模型与产品Backlog。
    构建之法第六章、第七章观后感
    四则运算,测试与封装。
    使用Webpack4 搭建React项目
    算法一小时--希尔排序
    算法一小时-插入排序
  • 原文地址:https://www.cnblogs.com/Erma/p/11212187.html
Copyright © 2011-2022 走看看