无法在 Amazon Aurora 上使用 MEMORY 引擎创建 table

unable to create table with MEMORY engine on Amazon Aurora

使用 https://dev.mysql.com/doc/refman/5.6/en/storage-engine-setting.html 中的示例,我在我的 AWS Aurora 服务器上执行以下操作:

CREATE TABLE t3 (i INT) ENGINE = MEMORY;

我得到的回复如下:

0 row(s) affected, 1 warning(s): 1266 Using storage engine InnoDB for table 't3';

为什么没有使用 MEMORY 引擎?根据 SHOW ENGINES; 支持...

https://dba.stackexchange.com/a/186989/2703 包含据报道来自 AWS 支持的声明:

Aurora is designed to provide support for only InnoDB storage engine for regular tables. Engines other than InnoDB are only supported for session-level temporary tables. With default configuration, when you try to create a table using a storage engine other than InnoDB, Aurora will implicitly create the table as InnoDB. Session level temporary tables are not persistent and they will be dropped once the session is completed.

Aurora 正在将 myisam 和内存表转换为 innodb。

mysql> create table mem_tbl( a int(11) ) engine=memory;
Query OK, 0 rows affected, 1 warning (0.05 sec)

mysql> show warnings;
+-------+------+-------------------------------------------------+
| Level | Code | Message                                         |
+-------+------+-------------------------------------------------+
| Note  | 1266 | Using storage engine InnoDB for table 'mem_tbl' |
+-------+------+-------------------------------------------------+
1 row in set (0.00 sec)

mysql> show create table mem_tbl \G
*************************** 1. row ***************************
       Table: mem_tbl
Create Table: CREATE TABLE `mem_tbl` (
  `a` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
1 row in set (0.00 sec)

由于 Aurora 进行基于磁盘的复制,并且如果当前写入器发生故障会发生自动故障转移,内存表将不安全。我假设这是在考虑这些功能的情况下做出的决定