[Mysql]一条语句是如何执行的?

版权声明:本文为博主原创文章,未经博主允许不得转载。有任何问题请邮件联系[email protected] https://blog.csdn.net/drdongshiye/article/details/84200955

首先看下MySQL的基本架构示意图
在这里插入图片描述

连接器:负责与客户端进行连接(tcp),判断权限的操作.
连接分为长连接和短连接,由于连接过程十分复杂,推荐使用长连接,但是如果全部一样使用长连接,会使用大量管理连接的内存,需断开连接.

查询缓存:将查询结果以sql-result的形式存在内存中,高版本已经停止该功能,弊大于利,每次内容更新都会造成缓存的失效

分析器:词法分析,分析sql中所代表的含义,语法分析,判断你写的sql是否符合mysql的语法.如对不存在的字段进行过滤,就会产生不存在该column的错误

优化器:如何执行这个sql,使用哪个索引,如何join其他表

执行器:先判断权限,选择引擎,调用接口,判断条件,返回结果集

猜你喜欢

转载自blog.csdn.net/drdongshiye/article/details/84200955