了解mysql体系结构,对于以后深入理解mysql有很大的帮助,对mysql也有一个整体的把握
部分内容来源CSDN 如有不妥 请及时联系我
以下内容是我个人对于mysql的学习和笔记 如有错误之处, 还请大神及时纠正。
网上有很多mysql体系结构图,诈一看是看不懂的(对于英语不好的我来说)所以来张汉化版的
由上图可知 mysql 由 连接池组件,管理服务和工具组件,sql接口组件,查询分析器组件,优化器组件,缓冲组件,插入式存储引擎,物理文件 构成。
主要分为4大层:
一. 网络连接层
主要负责连接安全,授权认证,安全等等 这一层并不是MySQL所特有的技术。
二.服务层(sql层)
MySQL的核心服务层都在这一层,查询解析,SQL执行计划分析,SQL执行计划优化,查询缓存。以及跨存储引擎的功能都在这一层实现
具体流程如下:
1(缓冲组件) 在查询之前,服务器会检查查询缓存 看有没有对应的,如果有则直接返回缓存中的结果集
2 (解析器) 解析语句通过解析树(这个以后会提到),判断语句是否正确,语句的类型, 必须明确的知道,数据在哪个磁盘的,哪个文件的哪个,哪个页上。
3(优化器组件)注意完成解析后并不会立马执行语句, 优化器将其转化成查询计划。多数情况下,一条查询可以有很多种执行方式。优化器的作用就是找到这其中最好的执行计划(这个以后会说)
4运行执行计划,生成如何去磁盘找数据的方式。
5 据执行计划给出的指令调用存储引擎的接口得出结果。
6更新查询缓存 假如我们查询的表是一个经常有变动的表,查询缓存不要设置太大。