MySQL基础机构图
客户端
向服务端发送请求。
连接器
管理客户端发送的请求,进行权限验证。
负责跟客户端建立连接,获取权限,维持和管理连接,这个连接器位于server层
分析器
对SQL语句的词法和语法进行分析。
词法分析:你输入的是由多个字符串和空格组成的一条SQL语句,Mysql需要识别出里面的字符分别是什么,代表什么。MySQL从你输入的“select”这个关键子识别出来,这是一条查询语句,他也要把字符串“T”识别成“表名T”,把字符串“ID”识别成“列ID”。
语法分析:根据词法分析的结果,语法分析器会根据语法规则,判断你输入的这个SQL语句是否满足MySQL语法。如果你输入的语句不对,你会收到“you have an error in your SQL syntax”的错误提醒,比如下面这个语句select少打了一个字母"S".
优化器
查看语句的执行计划,选择合适的索引。
经过了分析器,MySQL就知道你要做什么了,在开始执行之前,还要经过优化器的处理。
1. 优化器是在表里面有多个索引的时候,决定使用哪个索引;
2. 在一个语句有多表关联(join)的时候,决定各个表的连接顺序。
存储引擎
用来存储数据,提供读写接口。
①架构模式:插件式的,支持InnoDB(目前也是最常用的,MySQL5.5后默认存储引擎)、MyISAM、Memory等多个存储引擎。
②create table 时不指定引擎类型,默认使用的就是InnoDB.如果使用其他类型,可以利用create table语句中使用engine=memory,等来指定使用内存引擎来创建表。不同的存储引擎数据存储方式不同,支持的功能也不同。