一、MYSQL的体系结构
1.连接层
最上面一层是客户端链接服务。
2.服务层
主要完成大多数的核心服务功能。
3.引擎层
存储引擎真正负责mysql数据库中数据的存储和提取,服务器经过api和存储引擎进行通信。
4.存储层
主要将数据存储在文件系统上,并完成与存储引擎的交互。
二、存储引擎的简介
存储引擎就是存储数据,建立索引,更新/查询数据等技术的实现方式,存储引擎是基于表的,索引存储引擎也被称为表类型.
1.在创建表的时候指定存储引擎
create table 表名(
字段1 字段类型[comment 字段1注释]
)engine = 指定的引擎名字;
2.查看当前数据库支持的引擎
show engines;
三、存储引擎特点
1.InnoDB
这是一种兼顾高可靠性和高性能的通用存储引擎,在mysql5.5之后,为MySQL的默认引擎
特点
DML操作遵循ACID模型,支持事务
行级锁,提高并发访问性能
支持外键foreign key 外键约束,保证数据的完整性和正确性
文件
xxx.idb:xxx代表的是表名,使用该引擎的每张表都会生成一个这样的表空间文件,存储该表的结构(fem,sdi),数据和索引
参数:innodb_frie_per_table
2.myisam
介绍
这是MySQL早期的默认存储引擎
特点
不支持事务,不支持外键
支持表锁,不支持行锁
访问数据快
文件
xxx.sdi:存储表结构信息
xxx.MYD:存储数据
xxx.MYI:存储索引
3.memory
介绍
表数据存储在内存中,由于受到硬件问题,或断电问题的影响,只能将这些表作为临时表,或缓存使用
特点
内存存放
hash索引(默认)
文件
xxx.sdi:存储表结构信息