mysql存储引擎
文章目录
一、mysql的体系结构
1.连接层
接受客户端的连接,连接的受理,以及检查是否超过最大连接数,在连接层进行数据库账户和密码的校验,校验每一个客户端的权限。
2.服务层
绝大部分核心功能在第二层实现,sql接口,ddl,dml语句等
3.存储引擎层
可插拔式,用加入不用可移除,index是在存储引擎层实现,innodb是mysql5.5版本后的默认引擎。
4.存储层
数据库数据存储在磁盘中,主要是存储数据,包括文件和日志。
二、存储引擎层
存储引擎是存储数据,建立索引,更新/查询数据等技术的实现方式存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。
1.innoDB
mysql,高可靠,高性能
特点:
(1)dml遵从事务的四大特性(原子性,一致性,隔离性,持久性)和事务
(2)支持外键
(3)行级锁
2.innoDB逻辑结构
表空间:一个ibd文件就对应了一个表空间,
段:一个表空间中对应了多个段,
区:一个段对应多个区,一个区的大小为1M,
页:一个区对应多个(1024)页,每页16k,
行:数据库中的一行数据,一页对应多行。
3.MyISAM存储引擎
特点:
(1)不支持事务,不支持外键,
(2) 支持表锁,不支持行锁,
(3)访问速度快
4.memory存储引擎
特点:
(1)存储在内存中,速度快
(2)hash索引
2.innoDB和MyISAM的区别
(1)innoDB支持事务,而MyISAM不支持事务
(2)innoDB支持行锁,而MyISAM支持表锁
(3)innoDB支持外键,而MyISAM不支持外键
三、存储引擎的使用
(1)innoDB:当对事物完整性要求较高时,除查询外还经常有更新删除操作适合选用。
(2)MyISAM:以读和插入为主,很少更新删除,对事务的完整性和并发性要求不是很高时。