【MySQL】逻辑MySQL的分层与存储引擎
MySQL的逻辑分层
-
连接层:连接与线程处理,这一层并不是MySQL独有,一般的基于C/S架构的都有类似组件,比如连接处理、授权认证、安全等。
-
服务层:包括缓存查询、解析器、优化器,这一部分是MySQL核心功能,包括解析、优化SQL语句,查询缓存目录,内置函数(日期、时间、加密等函数)的实现。
-
引擎层:负责数据存储,存储引擎的不同,存储方式、数据格式、提取方式等都不相同,这一部分也是很大影响数据存储与提取的性能的;对存储层的抽象。
-
存储层:存储数据,文件系统。
存储引擎
简述
查看MySQL提供的存储引擎:
show engines;
- 从Engine列可以MySQL的存储引擎的名字:
- InnoDB 事务有限(行锁)
- MyISAM 性能优先(表锁)
- MEMOEY
- MRG_MYISAM
- CSY
- FEDERATED
- PERFORNANCE_SCHEMA
- BLAKHOLE
- ARCHIVE
- 从Support列可以看出当前MySQL支持和不支持的引擎以及默认引擎:
当Suppoet字段为YES时,表示支持;反之NO为不支持;DEFAULT为默认引擎。 - Comment可以看到官方对这些引擎的描述。
- Transactions列标明了引擎是否支持事务。
- XA列标明了引擎是否支持分布式事务。
- Savepoints列标明了引擎是否支持保存点:
保存点的作用:当rollback时,可以回退到savepoints。
建表时指定存储引擎
create table 表名(
...
)ENGINE = InnoDB;
查看指定表的存储引擎
show create table 表名
修改指定表的存储引擎
ALTER TABLE 表名 ENGINE=InnoDB