MySQL主要的存储引擎
MyISAM
它既不支持事务,也不支持外键,特点是访问速度快,对事务完整性没有要求或者以SELECT
、INSERT
为主的应用基本都适用。
每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,扩展名分别为:
.frm
(存储表定义)MYD
(MYData,存储数据)MYI
(MYIndex,存储索引)
InnoDB
InnoDB是一个健壮的事务型存储引擎,MySQL5.5之前默认使用MyISAM,5.6之后默认为InnoDB。
InnoDB引入了行级锁和外键约束,InnoDB最佳应用场景:
- 更新密集的表:InnoDB存储引擎特别适合处理多重并发的更新请求。
- 事务:InnoDB存储引擎是支持事务的标准MySQL存储引擎。
- 自动灾难恢复:与其他存储引擎不同,InnoDB表能够自动从灾难中恢复。
- 外键约束:MySQL支持外键的存储引擎只有InnoDB。
- 支持自动增加列
AUTO_INCREMENT
属性。
一般来说,如果需要事务支持,并且有较高的并发读取频率,InnoDB是最佳选择