sql执行流程

sql执行流程

MySQL可以分为Server层和存储引擎两部分

  • Server层包含连接器,查询缓存,分析器,优化器,执行器等,涵盖了MySQL的大多数的核心服务功能,以及所有的内置函数(如日期,时间,数学,和加密函数等),所有的跨存储引擎的功能都在这一层实现,比如存储过程,触发器,试图等
  • 存储引擎层负责数据的存储和提取。其架构是插件式的,支持InnoDB,MyISAM,Memory等多个存储引擎
  • 连接器。管理连接、权限验证。 解决长连接问题:可以代码定期关闭连接。mysql5.7版本之后,每次执行一个比较大的操作后,通过执行mysql_reset_connection来重新初始化连接资源。这个过程不需要重连和重新做权限验证,速度会比较快

  • 查询缓存。MYSQL 8.0没有缓存查询的功能,已经被抛弃。

    • 1.query_cache_type
      0(off):关闭缓存的功能,任何情况下都不会使用缓存
      1(on): 开启缓存,但是当select 语句中使用了SQL_NO_CACHE提示后,将不使用缓存
      2(demand):开启缓存查询,当select语句中使用了SQL_CACHE提示后,才使用缓存查询
    • 如果为1 又不想使用缓存:
      select sql_no_cache * from sys_user
    • 如果为2 向使用缓存
      select sql_cache * from sys_user
  • 分析器。分析语句是查询还是更新,还是语法有错误

  • 优化器。进行sql优化,选择最优sql

  • 执行器。最终运行sql到存储器获取数据

sql执行流程

上一篇:mysql优化之物化视图


下一篇:mysql 导入大批量excel数据