Mysql逻辑架构
2019-07-04 本文已影响0人
多彩海洋
image.png
- Connectors
指不同语言中与SQL的交互 - Connection Pool:连接池
- 管理缓冲用户连接,线程处理等需要缓存的需求
- SQL Interface: SQL接口
接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface - Parser: 解析器
主要功能是将SQL语句进行语义和语法的分析,分解成数据结构,然后按照不同的操作类型进行分类,
- Optimizer:查询优化器
- sql语句在查询之前会使用查询优化器对查询进行优化
- 使用“选取-投影-连接”策略进行查询。
用一个例子就可以理解: select uid,name from user where gender = 1;
* 这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行过滤
* 这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤
* 将这两个查询条件联接起来生成最终查询结果
- Cache和Buffer: 查询缓存
Query Cache 对性能的提高是非常显著的。当然它对内存的消耗也是非常大的。 - 存储引擎接口
MySQL区别于其他数据库的最重要的特点就是其插件式的表存储引擎
注意:存储引擎是基于表的,而不是数据库。
image.png
使用索引的注意事项
- 尽量创建组合索引(组合索引其实会默认按照最左前缀原则帮我们创建多组索引)
组合索引(id,name,sex) - 索引最左前缀原则
- 索引覆盖:要查询的列,也要使用索引覆盖住