四川广汇建设有限公司网站,昆明做网站哪家公司好,关于设计方面的网站,seminar什么意思中文目录 一、MySQL总体架构二、各层的作用1、连接层2、应用层3、存储引擎层 一、MySQL总体架构
作为常问八股文#xff0c;相信不少小伙伴当年都被问到过这个问题#xff0c;回答这个问题我们首先得知道MySQL服务器基本架构#xff0c;主要分为连接层#xff0c;应用层和存储… 目录 一、MySQL总体架构二、各层的作用1、连接层2、应用层3、存储引擎层 一、MySQL总体架构
作为常问八股文相信不少小伙伴当年都被问到过这个问题回答这个问题我们首先得知道MySQL服务器基本架构主要分为连接层应用层和存储引擎层。如下 二、各层的作用
1、连接层
首先不同语言客户端通过连接器连接mysqlmysql会进行权限验证连接限制连接缓存线程重用等等。
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的架构包含内存结构和磁盘结构敬请期待。