目录
1.Mysql体系结构
2.存储引擎简介
3.存储引擎特点
InnoDB
MyISAM
Memory
4.存储引擎选择
1.Mysql体系结构
MySQL整体的逻辑结构可以分为4层:
连接层:进行相关的连接处理、权限控制、安全处理等操作
服务层:服务层负责与客户层进行连接处理、处理以及执行SQL语句等,主要包含连接器、查询缓存、优化器、执行器、存储引擎。触发器、视图等也在这一层
存储引擎层:存储引擎层负责对数据的存储和提取,常见的存储引擎有 InnoDB、MyISAM、Memory 等,在MySQL5.5之后,MySQL默认的存储引擎就是InnoDB,InnoDB默认使用的索引结构就是B+树,上面的服务层就是通过API接口与存储引擎层进行交互的
存储层:主要将数据存储在文件系统之上,并完成引擎存储的交互。
2.存储引擎简介
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,可被称为表类型。
查询建表语句
show create table account;
查询当前数据库支持的存储引擎
show engines;
3.存储引擎特点
InnoDB
lnnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL5.5 之后,lnnoDB 是默认的 MySOL存储引擎。
特点:
- DML 操作遵循 ACID 模型,支持事务 ;
- 行级锁,提高并发访问性能;
- 支持外键 FOREIGN KEY约束,保证数据的完整性和正确性;
文件:
每张表都会对应这样一个表空间文件,存储该表的表结构(frm 、sdi )、数据和引。
MyISAM
MyISAM是Mysql早期的默认存储引擎。
特点:
- 不支持事务,不支持外键;
- 支持表锁,不支持行锁;
- 访问速度快。
文件:
- xxx.sdi:存储表结构信息
- xxx.MYD:存储数据
- xxx.MYI:存储索引
Memory
Memory引擎的表数据是存储在内存中的,由于收到硬件问题,或断电问题的影响,只能将这些表作为临时表或缓存使用。
特点:
- 内存存放
- hash索引(默认)
文件:
- xxx.sdi:存储表结构信息