Mysql 存储引擎

数据库存储引擎是数据库底层软件组件,数据库管理系统使用存储引擎进行创建、查询、更新和删除数据操作。

不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。

提示:InnoDB 事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MySQL 5.5.5 之后,InnoDB 作为默认存储引擎。

MySQL 提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在 MySQL 中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。

MySQL 5.7 支持的存储引擎有 InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE 等。

查看支持的存储引擎

mysql> show engines;

指定存储引擎

# 创建表,指定存储引擎
create table t1(id int)engine=innodb;

各存储引擎对比

文件对比

InnoDB 存储引擎在硬盘上会对应两个文件;
    .frm 		# 表结构
    .ibd		# 数据文件, InnoDB 首字母,d 代表 data 数据;
    
Memory	在硬盘上就一个文件
    .frm		# 表结构,数据直接放在内存中

MyISAM	在硬盘上对应三个文件
    .frm		# 表结构
    .MYD		# data 文件
    .MYI		# 索引文件