Skip to main content

理解MySQL表类型

MySQL为其表提供了各种存储引擎,如下所示:

每个存储引擎都有自己的优缺点。了解每个存储引擎的功能并为表选择最合适的存储引擎,以最大限度地提高数据库的性能,这一点至关重要。在以下几节中,我们将讨论每个存储引擎及其功能,以便您决定使用哪一个。

米萨姆

MyISAM扩展了以前的ISAM存储引擎。MyISAM表格针对压缩和速度进行了优化。MyISAM表也可以在平台和操作系统之间移植。

MyISAM表的大小可以达到256TB,这是一个巨大的数字。此外,MyISAM表可以压缩为只读表以节省空间。在启动时,MySQL会检查MyISAM表是否损坏,甚至在出现错误时修复它们。MyISAM表不是事务安全的。

在MySQL版本5.5之前,当您创建表而不显式指定存储引擎时,MyISAM是默认的存储引擎。从5.5版开始,MySQL使用InnoDB作为默认存储引擎。

InnoDB

InnoDB表完全支持与ACID兼容的事务。它们也是性能的最佳选择。InnoDB表支持外键、提交、回滚和前滚操作。InnoDB表的大小可达64TB。

与MyISAM一样,InnoDB表可以在不同的平台和操作系统之间移植。MySQL还可以在启动时检查和修复InnoDB表(如果需要)。

合并

合并表是一个虚拟表,它将多个结构与一个表相似的MyISAM表组合在一起。合并存储引擎也称为MRG_MyISAM引擎。合并表没有自己的索引;它使用组件表的索引。

使用合并表,可以在连接多个表时提高性能。MySQL只允许您对合并表执行选择、删除、更新和插入操作。如果对合并表使用DROP TABLE语句,则只删除合并规范。基础表不会受到影响。

记忆力

内存表存储在内存中,并使用哈希索引,因此它们比MyISAM表更快。内存表数据的生存期取决于数据库服务器的正常运行时间。内存存储引擎以前称为堆。

档案文件

archive storage engine允许您将大量记录存储为压缩格式,以节省磁盘空间。存档存储引擎在插入记录时对其进行压缩,并在读取时使用zlib库对其进行解压缩。

存档表只允许INSERT和SELECT语句。存档表不支持索引,因此需要对整个表进行扫描以读取行。

CSV

CSV存储引擎以逗号分隔值(CSV)文件格式存储数据。CSV表为将数据迁移到非SQL应用程序(如电子表格软件)提供了一种方便的方法。

CSV表不支持空数据类型。此外,读取操作需要进行全表扫描。

联邦的

联邦存储引擎允许您管理来自远程MySQL服务器的数据,而无需使用群集或复制技术。本地联合表不存储任何数据。从本地联合表查询数据时,数据会自动从远程联合表中提取。

选择MySQL表类型

您可以下载以下清单,根据各种标准选择最合适的存储引擎或表类型。

description: translate failed

在本教程中,您学习了MySQL中可用的各种存储引擎或表类型。