MySQL中的存储引擎是重要内容,也是基本内容,对存储引擎了解更多则是对MySQL的应用能力会有提升。因现阶段我实际使用到所有的存储引擎,但以备不时之需,准备写一篇关于所有存储引擎的文章,当然,我这里只是简介这些存储引擎,后续可能随着学习的深入,更新各个引擎相关的细节知识点。若想更深入学习,建议还是从官网入手。
一、MyISAM
MySQL5.0之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务。
二、InnoDB
事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎。
三、BDB
源自Berkeley DB,事务型数据库的另一种选择,支持Commit和Rollback等其他事务特性。
四、Memory
所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在MySQL重新启动时丢失。
五、Merge
将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用。
六、Archive
非常适合存储大量的、独立的、作为历史记录的数据,因为它们不经常被读取,常用于归档。Archive拥有高效的插入速度,但其对查询的支持相对较差。
七、Federated
将不同的MySQL服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用。
八、Cluster/NDB
高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用。
九、CSV
逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个 .csv 文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV 存储引擎不支持索引。