1.存储引擎比较
功能 | MyISAM | Memory | InnoDB | Archive |
---|---|---|---|---|
存储限制 | 256TB | RAM | 64TB | None |
支持事务 | × | × | √ | × |
支持全文检索 | √ | × | × | × |
支持数索引 | √ | √ | √ | × |
支持哈希索引 | × | √ | × | × |
支持数据缓存 | × | N/A | √ | × |
支持外键 | × | × | √ | × |
2.选择
存储引擎 | 选择时机 |
---|---|
MyISAM | 当数据表主要用来插入和查询数据 |
Memory | 当临时存放数据,数据量不大,并且不需要较高的数据安全性(MySQL中使用了该引擎作为临时表,存放查询中间结果) |
InnoDB | 当需要提交、回滚和崩溃恢复能力的事务安全能力,并且需要实现并发控制 |
Archive | 当只有INSERT和SELECT操作时,支持高并发插入,但不是事务安全的,适合存储归档数据,如日志信息 |
3.总结
使用哪一种引擎要根据需要灵活选择,一个数据库中多个表可以使用不同的引擎以满足各种性能需求和实际需求,使用合适的存储引擎可以提高整个数据库的性能。