本篇文章以MySQL为例浅要分析。主要分为宏观层次体系与语句层次体系。
宏观层次体系:
MySQL宏观层次可分为Server层与存储引擎层次。
Server层:
- 1.连接器:服务器用来确定用户的身份;
- 2.查询缓存:查询后结果的存储位置。8.0以后被取消;
- 3.分析器:判断内容是否符合语法规则;
- 4.优化器:系统自动选择多种策略中的最有策略去执行;
- 5.执行期:判断是否有权限,将最终任务提交到存储引擎。
存储引擎层:
该层次负责数据的存储与读取。其提供多个引擎供与选择。各种引擎的优缺点可参考这篇文章–MySQL 常见引擎适合业务场景
- MyISAM
- InnoDB(系统默认存储引擎)
- MEMORY
- MERGE
语句层次体系:
这里直接把先后顺序罗列出:
from
-> on
-> join
-> where
-> group by
-> having
-> select
-> distinct
-> union
-> order by
-> limit