美文网首页
mysql执行流程

mysql执行流程

作者: 森林中大鸟 | 来源:发表于2020-05-23 11:41 被阅读0次
image.png

server层

包括 连接器,查询缓存,分析器,优化器,执行器等,所有内置函数,所有跨存储引擎的功能(存储过程,视图,触发器)

连接器

负责跟客户端建立连接,维持连接,管理连接,获取权限。
命令:

mysql -hip -Pport -u$user -p
命令执行流程:

  1. 创建tcp连接
  2. 输入用户名密码(密码也可以直接跟在-p后面,不推荐)
  3. 认证不通过执行结束;通过则读取用户权限(从权限表查询,后续该连接的权限判断都依赖此时读取的权限。即使权限被修改,对此连接来说,不会生效,需要重新建立连接才能使用新的权限)
  4. 连接超时后会自动断开由参数wait_timeout控制默认8小时
  5. 数据库一般使用长连接,SQL在执行过程中临时使用的内存是管理在连接对象里面的。这些资源会在连接断开的时候才释放,所以长连接可能会出现oom
    可以定时断开连接。进行大内存大查询后断开连接。
    MySQL 5.7或更新版本,可以在每次执行一个比较大的操作后,通过执行
    mysql_reset_connection来重新初始化连接资源。这个过程不需要重连和重新做权限验证,
    但是会将连接恢复到刚刚创建完时的状态

查询缓存

  1. 上次查询执行后会将sql语句和查询结果以k-v的形式存在缓存中,每次表更新会清除缓存。
  2. 适用于不常更新的表使用。可以显式指定使用缓存

mysql> select SQL_CACHE * from T where ID=10;

  1. MySQL 8.0版本直接将查询缓存的整块功能删掉

分析器

分析是否满足sql语法,不满足则报错并提示首次出现错误的地方。

优化器

从多个可选的执行方案中选择最优的执行方案

执行器

  1. 校验对表是否有权限
  2. 如果有,继续执行,操作引擎,返回结果

存储引擎

负责存取数据,插件式的架构,支持innodb(5.5之后默认的),myisam,memory等;建表时可以通过engine=memory指定。

相关文章

  • mysql小知识整理

    1 mysql执行流程 执行mysql,首先你要获取到mysql一个连接,建立连接之后,开始正式sql语句流程:首...

  • 01-SQL语言

    一、MySQL发送SQL请求执行流程MySQL发送SQL请求执行流程.png 1、客户端发送一条给 2、MySQL...

  • MySQL执行流程

    简版执行流程图 待分析SQL如下: 我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部...

  • MYSQL 执行流程

    1. 借鉴 极客时间MySQL实战45讲 力推[https://time.geekbang.org/column/...

  • MySQL执行流程

    MySQL执行流程 一共会经历四步,分别是连接、分析、优化与执行。 连接器 连接器会拿着我们输入的IP和端口,去做...

  • mysql执行流程

    数据库在系统应用中处于核心位置。个人对数据库的定义是对数据进行中转或存储的组件都可以称之为数据库;熟悉的非关系型数...

  • mysql执行流程

    server层 包括 连接器,查询缓存,分析器,优化器,执行器等,所有内置函数,所有跨存储引擎的功能(存储过程,视...

  • 99 MySQL性能实战优化

    mysql 性能优化 一 MySQL架构与执行流程原理 二 MySQL 索引底层实现原理 三 MYSQL事务...

  • MySQL源码分析之SQL函数执行

    1.MySQL中执行一条SQL的总体流程 2.SQL函数执行过程 1.MySQL中执行一条SQL的总体流程 一条包...

  • Innodb引擎下的日志系统(WAL)

    说到mysql的数据的日志系统,我们必须先说说MySQL的执行流程: 上图就是我简单的画了一个sql执行流程,不做...

网友评论

      本文标题:mysql执行流程

      本文链接:https://www.haomeiwen.com/subject/sydkahtx.html