[Mysql]一条语句是如何执行的?
首先看下MySQL的基本架构示意图
连接器:负责与客户端进行连接(tcp),判断权限的操作.
连接分为长连接和短连接,由于连接过程十分复杂,推荐使用长连接,但是如果全部一样使用长连接,会使用大量管理连接的内存,需断开连接.
查询缓存:将查询结果以sql-result的形式存在内存中,高版本已经停止该功能,弊大于利,每次内容更新都会造成缓存的失效
分析器:词法分析,分析sql中所代表的含义,语法分析,判断你写的sql是否符合mysql的语法.如对不存在的字段进行过滤,就会产生不存在该column的错误
优化器:如何执行这个sql,使用哪个索引,如何join其他表
执行器:先判断权限,选择引擎,调用接口,判断条件,返回结果集
还没有评论,来说两句吧...