参考链接
- msyql45讲 第一章, time.geekbang.org/column/arti…
Mysql可以分为 Server层和 存储引擎两层
结构图:
Server层
- 连接器
负责和客户端建立连接
- 查询缓存(默认关闭,mysql8.0就已经关闭了)
查询语句和结果集,以 key-value 的形式存放,查询缓存的失效非常频繁,如果有表更新,则表上的所有查询缓存都会失效。
show variables like "have_query_cache"
- 分析器
分析器分为 词法分析(判断表和列是否存在),语法分析(sql语句是否有语法错误)
- 优化器
选择合适的索引,来查询sql
- 执行器
操作引擎,返回结果,(调用Innodb引擎接口操作)
存储引擎层
负责数据的存储和提取