MyISAM存储引擎
- MyISAM 存储引擎是MYSQL最常用的引擎。
- 他管理的表具有以下特征:
使用三个文件表示每个表:
格式文件 - 存储表结构的定义
数据文件 - 存储表行的内容
索引文件 - 存储表上索引
灵活的AUTO_INCREMENT字段处理
可被转换为压缩、只读表来节省空间
InnoDB存储引擎
- InnoDB储存引擎是MYSQL的缺省引擎。
- 他管理的表具有以下列主要特征:
每个InnoDB表在数据库目录中以.frm格式文件表示
InnoDB表空间tablespace被用于存储表的内容
提供一组用来记录事务性活动的日志文件
用COMMIT、SAVEPOINT及ROLLBACK支持事务处理
提供ACID兼容
在MYSQL服务器崩溃后提供自动修复
多版本(MVCC)行级锁定
支持外键及引用的完整性,包括级联删除和更新
MEMORY存储引擎
- 使用MEMORY 存储引擎的表,其数据存储在内存中,且行的长度固定,这两个特点使得MEMORY存储引擎非常快。
- MEMORY存储引擎管理的表具有以下特征
在数据库目录内,每个表均以.frm格式的文件表示
表数据及索引被存储在内存中
表级锁机制
不能包含TEXT或BLOB字段 - MEMORY 存储引擎以前被称为HEAP引擎
选择合适的存储引擎
- MyISAM表最适合大量的数据读而少量的数据更新的混合操作。MyISAM表的另一种适用情形是使用压缩的只读表。
- 如果查询中包含较多的数据更新操作。应使用InnoDB。其行级锁机制和多版本的支持为数据读取和更新的混合操作提供了良好的并发机制。
- 可使用MEMORY存储引擎来存储非永久需要的数据,或者是能够从基于磁盘的表中重新生成的数据。