当前位置:   article > 正文

mysql查看sql执行过程_SQL查询执行过程

mysql查看sql的执行过程

MYSQL查询执行过程客户端向服务器发送请求

服务器查询缓存,缓存中命中则结束,将结果返回客户端(返回前会检查用户权限),否则继续下边步骤

服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划

根据执行计划调用存储引擎的API执行查询

将结果返回客户端

一、查询缓存

如果一条SQL语句以select开头,MySQL服务器将会尝试先在缓存中查询。每个cache都是以SQL文本做为key的,所以如果SQL语句中大小写不同也无法命中。

设置:my.cnf(Linuxe)/my.ini(Windows)query_cache_type=0时,不启用缓存查询

query_cache_type=1时,启用缓存查询。如果在select后使用SQL_NO_CACHE,则本条SQL不使用缓存,对于查询很分散的SQL,不建议使用缓存,例如根据用户Id查询用户信息

query_cache_type=2时,只对特定语句使用缓存。select后使用SQL_CACHE则进行缓存查询,对于接近静态数据的表,可以使用SQL_CACHE提高效率

命令:show variables like '%query_cache%'查询缓存配置参数

命令:show status like '%Qcache%'查询缓存情况

Qcache_hits:命中次数

Qcache_inserts:未命中后插入次数

二、MySQL解析器和预处理

Parser解析器

SQL命令传递到解析器的时候会被解析器验证和解析,主要功能为:解析器将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL的传递和处理都是基于这个结构的

如果在分解成数据结构中遇到错误,那么就说明这个SQL语句是不合法的

预处理

三、MySQL查询优化器

查询优化器将语法树转换为执行计划,并找出最好的执行计划。

可以使用explain查看查询优化器的操作,编写SQL语句的方式决定查询优化器如何使用索引。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/278517
推荐阅读
相关标签
  

闽ICP备14008679号