大体来说,MySQL分为server层和存储引擎层,server层有连接器、分析器、优化器、执行器和查询缓存;
其中,客户端发出请求与连接器建立连接并获取权限,
分析器对SQL语句做分析并判断是否正确;
优化器决定使用哪个索引,生成执行计划,决定多表连接中表的连接顺序。
执行器执行语句,操作存储引擎,并返回结果;
在server层中,查询请求先访问缓存,命中直接返回。不推荐使用缓存,更新会把缓存清除(关闭缓存:参数query_cache_type设置成DEMAND)。
大体来说,MySQL分为server层和存储引擎层,server层有连接器、分析器、优化器、执行器和查询缓存;
其中,客户端发出请求与连接器建立连接并获取权限,
分析器对SQL语句做分析并判断是否正确;
优化器决定使用哪个索引,生成执行计划,决定多表连接中表的连接顺序。
执行器执行语句,操作存储引擎,并返回结果;
在server层中,查询请求先访问缓存,命中直接返回。不推荐使用缓存,更新会把缓存清除(关闭缓存:参数query_cache_type设置成DEMAND)。