- 存储引擎是解决不同表类型的SQL操作的MySQL组件。InnoDB是默认且最通用的存储引擎。(MySQL 8.0中的CREATE TABLE语句默认创立InnoDB表。)
- 确定您的服务器反对哪些存储引擎,应用SHOW ENGINES语句。Support列中的值示意是否能够应用引擎。
mysql> SHOW ENGINES\G*************************** 1. row *************************** Engine: PERFORMANCE_SCHEMA Support: YES Comment: Performance SchemaTransactions: NO XA: NO Savepoints: NO*************************** 2. row *************************** Engine: InnoDB Support: DEFAULT Comment: Supports transactions, row-level locking, and foreign keysTransactions: YES XA: YES Savepoints: YES*************************** 3. row *************************** Engine: MRG_MYISAM Support: YES Comment: Collection of identical MyISAM tablesTransactions: NO XA: NO Savepoints: NO*************************** 4. row *************************** Engine: BLACKHOLE Support: YES Comment: /dev/null storage engine (anything you write to it disappears)Transactions: NO XA: NO Savepoints: NO*************************** 5. row *************************** Engine: MyISAM Support: YES Comment: MyISAM storage engineTransactions: NO XA: NO Savepoints: NO...
MySQL 8.0反对的存储引擎列表如下
- InnoDB:MySQL 8.0中的默认存储引擎。InnoDB 是用于 MySQL 的事务平安(合乎 ACID)存储引擎,具备提交、回滚和解体复原性能来爱护用户数据。InnoDB 行级锁定(不降级到更粗粒度的锁定)和Oracle格调的统一非锁定读取进步了多用户并发性和性能。InnoDB将用户数据存储在汇集索引中,以缩小基于主键的常见查问的I/O。为了保护数据完整性,InnoDB还反对FOREIGN KEY(外键)援用完整性束缚。
- MyISAM:表占用空间很小。表级锁定限度了read/write工作负载的性能,因而它通常用于Web和数据仓库配置中的只读或以读取为主的工作负载。
- Example:将所有数据存储在RAM中,以便在须要疾速查找非关键数据的环境中快速访问。该引擎以前称为HEAP引擎。它的应用场景正在缩小;InnoDB及其缓冲池内存区域提供了一种通用且长久的形式来将大部分或所有数据保留在内存中,而NDBCLUSTER(NDB)为宏大的分布式数据集提供了疾速的键值查找。
- CSV:实际上是具备逗号分隔值的文本文件。CSV表容许您以CSV格局导入或转储数据,以便与读取和写入雷同格局的脚本和应用程序替换数据。因为CSV表没有索引,因而通常在失常操作期间将数据保留在InnoDB表中,并且仅在导入或导出阶段应用CSV表。
- Archive:紧凑的未索引的表旨在存储和检索大量很少援用的历史、存档或平安审计信息。
- Blackhole:承受但不存储数据,相似于Unix的/dev/null设施。查问总是返回一个空集。这些表可用于复制配置,其中DML语句被发送到正本服务器,但源服务器不保留本人的数据正本。
- NDB(也称为 NDBCLUSTER):此集群数据库引擎特地实用于须要尽可能高的失常运行工夫和可用性的应用程序。
- Merge:不便MySQL DBA或开发人员可能对一系列雷同的MyISAM表进行逻辑分组,并将它们作为一个对象援用。实用于VLDB环境,例如数据仓库。
- Federated:提供链接独自的MySQL服务器,从许多物理服务器创立一个逻辑数据库的能力。非常适合分布式或数据集市的环境。
- Example:为MySQL源代码中的示例,阐明了如何开始编写新的存储引擎。它次要是开发人员感兴趣的。存储引擎是一个什么都不做的“存根”。您能够应用此引擎创立表,但无奈在其中存储或检索任何数据。