逻辑分层
连接层:连接与线程处理,这一层并不是MySQL独有,一般的基于C/S架构的都有类似组件,比如连接处理、授权认证、安全等。
服务层:包括缓存查询、解析器、优化器,这一部分是MySQL核心功能,包括解析、优化SQL语句,查询缓存目录,内置函数(日期、时间、加密等函数)的实现。
引擎层:负责数据存储,存储引擎的不同,存储方式、数据格式、提取方式等都不相同,这一部分也是很大影响数据存储与提取的性能的;对存储层的抽象。
存储层:存储数据,文件系统。
存储引擎
图1.显示数据库引擎
图2.默认引擎
查看数据库支持的存储引擎:show engines;
查看数据库默认使用哪个引擎:show variables like ‘%storage_engine%’;
指定数据库引擎:create table tb(
id int(4) auto_increment ,
name varchar(5),
dept varchar(5) ,
primary key(id)
)ENGINE=MyISAM AUTO_INCREMENT=1
DEFAULT CHARSET=utf8
查看建表语句:show create table default_table;
InnoDB和MyISAM的区别
InnoDB:在MySQL5.5开始作为默认的存储引擎,支持事务,行级锁,适合高并发场景,XA协议支持分布式事务。
MyISAM:不支持事务,性能优先,表级锁,不适合高并发场景。