【极客时间课程笔记,图非原创】
MySQL逻辑框架
- server层:如图,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等
- 存储引擎层:负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MySIAM、Memory等多个存储引擎。最常用的是InnoDB(从5.5.5版开始成为默认)。
【长连接 vs 短连接】
- 长连接:连接成功后,如果客户端持续有请求,则一直使用同一个连接
- 短连接:每次执行完很少的几次查询就断开连接,下次查询再建立一个
【tips】
- 建立连接的过程比较复杂,建议减少建立连接的动作。
- 但是使用长连接占内存很快,因为mysql再执行过程中临时使用的内存是管理再连接对象里的,这些资源在断开连接的时候才释放。解决办法:(1)定期断开长连接;(2)mysql5.7版本支持mysql_reset_connection来重新初始化连接资源
分析器
词法分析 - > 语法分析
优化器
表里有多个索引的时候,决定用哪个索引;或者一个语句有多表关联(join)的时候,决定各个表的连接顺序
执行器
MySQL通过分析器知道了你要做什么,通过优化器知道了该怎么做,于是进入执行器执行。
select * from T where ID=10;
- 首先判断对表T有没有执行权限,如果有进入2
- 调用InnoDB引擎接口取表的第一行,判断condition,如果是则存入结果集,不是就跳过。-> step 3;
- 调用引擎接口取“下一行”,重复condition判断,直到取到最后一行;
- 结果集返回给客户端
网友评论