美文网首页
mysql 执行查询过程

mysql 执行查询过程

作者: Kamiya_ | 来源:发表于2020-02-28 23:28 被阅读0次

    1、客户端发送一条查询给服务器
    2、服务器会检查查询缓存,如果缓存中存在则会校验权限,如果权限通过将直接返回结果
    3、如果缓存中不存在则通过解析器进行sql解析,解析sql语法是否存在错误,如果错误会停止查询
    4、通过预处理器,检查数据库列、数据表是否存在,解析别名是否有歧义
    5、再由优化器进行查询优化,主要是将SQL转化为执行计划,一条SQL有多种执行方式,查询优化器就是为了找到代价最低的那一条方式,生成执行计划
    6、mysql根据查询计划,调用存储引擎api来执行查询
    7、将结果返回客户端

    ps:查询缓存
    在解析查询SQL的时候,如果这个查询是打开的,那么MySQL会优先在缓存中查询该SQL是否命中,这个过程是一个大小写敏感的过程,即使只有一个字节不同,也不会命中缓存,如果恰好命中了缓存,则下一步不是返回结果,而是查看权限是否有问题,如果检测权限有问题,则不会返回结果,如果权限没有问题,则会返回结果给客户端。这一点很重要,需要保持谨慎。

    相关文章

      网友评论

          本文标题:mysql 执行查询过程

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