分层架构
管道-过滤器架构
微内核架构
SQL执行的过程
连接器
建立连接
发送验证
退出连接
查询缓存
之前执行过的语句会KV的形式缓存在内存中
查询之前先查找之前执行过的相同语句
不推荐使用缓存:数据表修改后,会删除所有相关缓存
MySQL8.0以后缓存功能已经停用
分析器
分析器的作用是知道你要“干什么”
先做词法分析,识别SQL语句中的关键字
再做句法分析,判断SQL语句是否符合语法
优化器
优化器的作用是要知道“怎么做”
优化器的主要工作是决定如何使用索引
执行器
执行器的主要工作是校验权限、调用存储引擎
执行器首先校验此用户对目标数据有无权限
执行器会以行为粒度,调用存储引擎,
执行SQL在没有索引的情况下,执行器会循环查询所有行
存储引擎
存储引擎的任务是将执行器的指令落实在数据文件上
不同存储引擎的原理和执行方法有很大不同