了解MySQL中每个存储引擎的特性是非常重要的,这样您就可以有效地使用它们来最大限度地提高数据库的性能。
MySQL为其表提供了以下各种存储引擎:
MyISAM
InnoDB
MERGE
MEMORY (HEAP)
ARCHIVE
CSV
FEDERATED
每个存储引擎都有各自的优缺点。理解每个存储引擎特性并为您的表选择最合适的特性以最大限度地提高数据库的性能是至关重要的。
一、MyISAM
MyISAM扩展了以前的ISAM存储引擎。
MyISAM表是为压缩和速度而优化的。
MyISAM表在平台和操作系统之间也是可移植的。
MyISAM表的大小可以高达256 TB,这是巨大的。
此外,可以将MyISAM表压缩为只读表,以节省空间。
在启动时,MySQL检查MyISAM表是否损坏,甚至在出现错误时修复它们。
MyISAM表并不是事务安全的。
在MySQL版本5.5之前,当您创建一个表而不显式地指定存储引擎时,MyISAM是默认的存储引擎。
在5.5版中,MySQL使用InnoDB作为默认存储引擎。
二、InnoDB
InnoDB表完全支持符合酸和交易..它们也是性能的最佳选择。
InnoDB表支持外键,提交,回滚,前滚操作。
InnoDB表的大小可高达64 TB。
与MyISAM一样,InnoDB表在不同的平台和操作系统之间是可移植的。
MySQL还在启动时检查和修复InnoDB表(如果需要的话)。
三、MERGE
合并表是一个虚拟表,它将结构类似于一个表的多个MyISAM表组合在一起。
合并存储引擎也称为MRG_MyISAM引擎。
这个MERGE表没有自己的索引;它使用组件表的索引。
使用合并表,可以在连接多个表…MySQL只允许您执行选择, 删除, 更新和插入上的操作、合并表。
如果你用DROP TABLE声明MERGE tables 只有MERGE规格被移除。基本表不会受到影响。
四、MEMORY (HEAP)
内存表存储在内存中,并使用散列索引,因此它们比MyISAM表更快。
内存表数据的生存期取决于数据库服务器的正常运行时间。
内存存储引擎以前称为堆。
五、ARCHIVE
存档存储引擎允许您将大量记录存储到压缩格式中,以节省磁盘空间。
存档存储引擎在插入记录时压缩它,并使用兹利卜图书馆已被阅读。
存档表仅允许插入和选择陈述。
这个存档表不支持索引,因此需要对读取行进行完整的表扫描。
六、CSV
CSV存储引擎以逗号分隔值(CSV)文件格式存储数据.
CSV表为将数据迁移到非SQL应用程序(如电子表格软件)带来了一种方便的方法。
CSV表不支持空数据类型。
此外,读取操作需要全表扫描。
七、FEDERATED
这个FEDERATED存储引擎允许您在不使用群集或复制技术的情况下管理来自远程MySQL服务器的数据。
本地联邦表不存储数据。
当从本地联邦表查询数据时,数据将自动从远程联邦表中提取。