美文网首页
sql语句是如何执行的

sql语句是如何执行的

作者: 苏康申 | 来源:发表于2018-12-22 21:27 被阅读0次
    MySQL执行流程

    1,连接

    连接管理模块,接收请求;连接进程和用户模块,通过,连接线程和客户端对接,在完成TCP握手后,连接器开始认证登录的身份,然后根据输入的用户名与密码查询拥有的权限,之后这个连接里面的权限判断逻辑都依赖此时读到的所有权限

    注意 一个用户成功建立连接后,即使你用管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限。修改完成后,只有再新建的连接才会使用新的权限设置。

    连接完成后,如果你没有后续的动作,这个连接就处于空闲状态,你可以在 show processlist 命令中看到它。文本中这个图是 show processlist 的结果,其中的 Command 列显示为“Sleep”的这一行,就表示现在系统里面有一个空闲连接。

    2,查询

    查询缓存 Query Cache

    分析器,内建解析树,对其语法检查,先from,再on,再join,再where......;检查权限,生成新的解析树,语义检查(没有字段k在这里)等

    优化器,将前面解析树转换成执行计划,并进行评估最优

    执行器,获取锁,打开表,通过meta数据,获取数据

    3,返回结果

    返回给连接进程和用户模块,然后清理,重新等待新的连接

    相关文章

      网友评论

          本文标题:sql语句是如何执行的

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