毕业设计 旅游网站建设重庆网站推广营销
目录
- 一、MySQL总体架构
 - 二、各层的作用
 - 1、连接层
 - 2、应用层
 - 3、存储引擎层
 
一、MySQL总体架构
作为常问八股文,相信不少小伙伴当年都被问到过这个问题,回答这个问题我们首先得知道MySQL服务器基本架构,主要分为连接层,应用层和存储引擎层。如下:
 
二、各层的作用
1、连接层
首先不同语言客户端通过连接器连接mysql,mysql会进行权限验证,连接限制,连接缓存,线程重用等等。
2、应用层
到达应用层时,会对执行的SQL进行分类,如果是查询语句会对语句进行解析,找到对应的表,要检索的字段和查询条件。
同时优化器会根据表是否有索引等制定执行计划检索数据,最后优先去缓存层中查询数据,缓存中没有则从磁盘读取。
该层主要包含SQL接口层,解析器,优化器,和缓存层,各层各司其职。
- SQL Interace:区分DML、DDL、存储过程、视图、触发器等。
 - Parser(解析器):比如查询语句的翻译,查哪张表,查哪些字段,有哪些条件等。
 - Optimizer(优化器):走索引还是全表扫、多个表查询先查哪个表等。
 - Caches & Buffers(缓存层):查数据时先查缓存,若没有则从磁盘读取。
 
3、存储引擎层
当查询数据时,MySQL服务器会通过存储引擎检索数据,存储引擎决定数据怎么存储,以及具体如何从磁盘中查询数据。
 
 上面的tb_user_copy表指定了存储引擎为CSV,关于存储引擎具体怎么存储数据,我们可以查看mysql数据目录下的存储信息,如下:
 
备注:可以看到在MySQL的数据目录下有名为
tb_user_copy.CSV的文,不同存储引擎存储表数据的格式和结构都不同。
mysql中支持的存储引擎,可以通过命令检索,如下:
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
 
下节我们具体讲讲InnoDB的架构,包含内存结构和磁盘结构,敬请期待。
 
