1、存储引擎特性
特性 | MySAM | InnoDB | MEMORY |
存储限制 | 有 | 64TB | 有 |
事务安全 | 不支持 | 支持 | 不支持 |
锁机制 | 表锁 | 行锁 | 表锁 |
B树索引 | 支持 | 支持 | 支持 |
哈希索引 | 不支持 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 | 不支持 |
集群索引 | 不支持 | 支持 | 不支持 |
数据缓存 | 支持 | 支持 | |
索引缓存 | 支持 | 支持 | 支持 |
数据可压缩 | 支持 | 不支持 | 不支持 |
空间使用 | 低 | 高 | N/A |
内存使用 | 低 | 高 | 中等 |
批量插入速度 | 高 | 低 | 高 |
支持外键 | 不支持 | 支持 | 不支持 |
此三种引擎应用场合及建议:
1>MyISAM存储引擎:由于该存储引擎不支持事务、也不支持外键,所以访问速度比较快。因此对事务完整性没有要求并以访问为主的应用适合该存储引擎。
2>InnoDB存储引擎:由于该存储引擎在事务上有优势,即支持具有提交、回滚和崩溃恢复能力的事务安装,所以比MyISAM存储引擎占更多的磁盘空间,因此需要进行频繁的个更新、删除操作,同时还对事务的完整性要求比较高,需要实现并发控制,此时适合使用该存储引擎。
3>MEMORY存储引擎:该存储引擎使用内存来存储数据,因此该存储引擎的数据访问速度快,但是安全上没有保障。如果应用中涉及数据比较小,需要进行快速访问,则适合使用该存储引擎。
注:此文章摘自MySQL数据库应用从入门到精通第四章第一节