了解 MySQL 存储引擎
总结:在本教程中,您将学习各种MySQL 存储引擎或表类型。了解 MySQL 中每个存储引擎的功能至关重要,以便您可以有效地使用它们来最大限度地提高数据库的性能。
MySQL为其表提供了各种存储引擎,如下所示:
- 我的ISAM
- 数据库
- 合并
- 内存(堆)
- 档案
- CSV
- 联邦
每个存储引擎都有自己的优点和缺点。了解每个存储引擎的特性并为您的表选择最合适的一个以最大限度地提高数据库的性能至关重要。在下面的部分中,我们将讨论每个存储引擎及其功能,以便您可以决定使用哪一个。
我的ISAM
MyISAM 扩展了以前的 ISAM 存储引擎。MyISAM 表针对压缩和速度进行了优化。MyISAM 表也可以在平台和操作系统之间移植。
MyISAM 表的大小可以达到 256TB,非常庞大。此外,MyISAM 表可以压缩成只读表以节省空间。在启动时,MySQL 检查 MyISAM 表是否损坏,甚至在出现错误时修复它们。MyISAM 表不是事务安全的。
在 MySQL 5.5 版本之前,MyISAM 是您在创建表时未明确指定存储引擎时的默认存储引擎。从 5.5 版开始,MySQL 使用 InnoDB 作为默认存储引擎。
数据库
InnoDB 表完全支持 ACID 兼容和事务。它们也是性能的最佳选择。InnoDB 表支持外键、提交、回滚、前滚操作。InnoDB 表的大小最高可达 64TB。
与 MyISAM 一样,InnoDB 表可以在不同平台和操作系统之间移植。如有必要,MySQL 还会在启动时检查和修复 InnoDB 表。
合并
MERGE 表是一个虚拟表,它组合了多个与一个表具有相似结构的 MyISAM 表。MERGE 存储引擎也称为 MRG_MyISAM 引擎。该 MERGE 表没有自己的索引;它使用组件表的索引来代替。
使用 MERGE table,可以在加入多个表时加快性能 。MySQL 只允许您对表执行SELECT、DELETE、UPDATE和INSERT操作 MERGE 。如果 DROP TABLE 在 MERGE 表上使用语句,则仅 MERGE 删除规范。基础表不会受到影响。
记忆
内存表存储在内存中并使用哈希索引,因此它们比 MyISAM 表更快。内存表数据的生命周期取决于数据库服务器的正常运行时间。内存存储引擎以前称为 HEAP。
档案
存档存储引擎允许您将大量记录存储为压缩格式以节省磁盘空间,以便存档。存档存储引擎在插入记录时对其进行压缩,并在读取时使用_zlib_库对其进行解压缩。
归档表只允许INSERT和SELECT语句。该 ARCHIVE 表不支持索引,所以需要进行全表扫描读取行。
CSV
CSV 存储引擎以逗号分隔值 (CSV) 文件格式存储数据。CSV 表提供了一种将数据迁移到非 SQL 应用程序(如电子表格软件)的便捷方法。
CSV 表不支持 NULL 数据类型。另外,读操作需要全表扫描。
联邦
该 FEDERATED 存储引擎可让您无需使用群集或复制技术管理从远程MySQL服务器的数据。本地联合表不存储任何数据。当您从本地联合表中查询数据时,数据会自动从远程联合表中提取。
选择 MySQL 表类型
您可以下载以下清单以根据各种标准选择最合适的存储引擎或表类型。
在本教程中,您学习了 MySQL 中可用的各种存储引擎或表类型。