Mysql 逻辑架构
流程
- 客户端与服务建立连接。
- 进行账户,密码,权限验证。
- 查询缓存中查询是否执行过当前select语句。如果之前执行过相应的select语句,则执行过的select语句和查询结果会以key-value的形式存放在查询缓存中,其中,key是查询语句,value是查询的结果数据,查询缓存中没有找到相应的数据,则会继续执行后续的查询阶段。
- 分析器主要是对select语句进行 词法分析和语法分析 操作。
- select语句中如果使用了多个索引,则优化器会决定使用哪个索引来查询数据;再比如,在select语句中,有多表关联的操作,优化器会决定各表的连接顺序,数据表的连接顺序不同,对于执行的效率会大不相同,优化器往往会选择使用查询效率高的连接顺序。
- 执行,通过存储引擎操作底层的数据文件