

# Amazon RDS 上的 MariaDB 特征支持
<a name="MariaDB.Concepts.FeatureSupport"></a>

RDS for MariaDB 支持 MariaDB 的大部分特征和功能。有些功能可能仅提供有限支持或受限制的权限。

您可以在[数据库的新增功能？](https://aws.amazon.com/about-aws/whats-new/database/)页面上筛选新的 Amazon RDS 特征。对于 **Products (产品)**，请选择 **Amazon RDS**。然后使用 **MariaDB 2023** 之类的关键词进行搜索。

**注意**  
以下列表并不详尽。

有关 Amazon RDS 上 MariaDB 功能支持的更多信息，请参阅以下主题。

**主题**
+ [Amazon RDS 上的 MariaDB 支持的存储引擎](MariaDB.Concepts.Storage.md)
+ [Amazon RDS 上的 MariaDB 的缓存预热](MariaDB.Concepts.XtraDBCacheWarming.md)
+ [Amazon RDS 不支持的 MariaDB 特征](MariaDB.Concepts.FeatureNonSupport.md)

## Amazon RDS for MariaDB 各主要版本上的 MariaDB 特征支持
<a name="MariaDB.Concepts.FeatureSupport.MajorVersions"></a>

在以下几部分，查找有关 Amazon RDS for MariaDB 各主要版本上的 MariaDB 特征支持的信息：

**Topics**
+ [Amazon RDS 上对 MariaDB 11.8 的支持](#MariaDB.Concepts.FeatureSupport.11-8)
+ [Amazon RDS 上对 MariaDB 11.4 的支持](#MariaDB.Concepts.FeatureSupport.11-4)
+ [Amazon RDS 上对 MariaDB 10.11 的支持](#MariaDB.Concepts.FeatureSupport.10-11)
+ [Amazon RDS 对 MariaDB 10.6 的支持](#MariaDB.Concepts.FeatureSupport.10-6)
+ [Amazon RDS 对 MariaDB 10.5 的支持](#MariaDB.Concepts.FeatureSupport.10-5)
+ [Amazon RDS 上对 MariaDB 10.4 的支持](#MariaDB.Concepts.FeatureSupport.10-4)

有关支持的 Amazon RDS for MariaDB 次要版本的信息，请参阅 [Amazon RDS 上的 MariaDB 版本](MariaDB.Concepts.VersionMgmt.md)。

### Amazon RDS 上对 MariaDB 11.8 的支持
<a name="MariaDB.Concepts.FeatureSupport.11-8"></a>

对于运行 MariaDB 版本 11.8 或更高版本的数据库实例，Amazon RDS 支持以下新特征。

**注意**  
在 MariaDB 11.8 中，`require_secure_transport` 的默认值现为 `1`，需要安全的 SSL/TLS 连接。如果需要非安全连接，则设置为 `0`。
+ **参数的新默认值** – `require_secure_transport` 参数的默认值从 `0` 更改为 `1`，默认情况下强制使用安全传输连接。有关更多信息，请参阅 [所有与 Amazon RDS 上的 MariaDB 数据库实例的连接都需要 SSL/TLS](mariadb-ssl-connections.require-ssl.md)。
+ **矢量支持** – 您可以使用 MariaDB Vector 直接在 MariaDB 中存储和搜索人工智能生成的向量。此功能引入了以下系统变量：
  + 变量 [https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_default_distance](https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_default_distance) 指定 MHNSW 向量索引的默认距离指标。
  + 变量 [https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_default_m](https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_default_m) 定义了 MHNSW 向量索引中 `M` 参数的默认值。
  + 变量 [https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_ef_search](https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_ef_search) 定义了向量索引搜索的候选结果的最少数量。
  + 变量 [https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_max_cache_size](https://mariadb.com/docs/server/reference/sql-structure/vectors/vector-system-variables#mhnsw_max_cache_size) 设置一个 MHNSW 向量索引缓存的上限。
+ **临时文件大小限制** – 现在，您可以使用 RDS Maria DB 11.8 参数组中提供的两个系统变量来限制已创建的磁盘临时文件和表的大小：
  + 变量 [https://mariadb.com/docs/server/security/limiting-size-of-created-disk-temporary-files-and-tables/max_tmp_session_space_usage-system-variable](https://mariadb.com/docs/server/security/limiting-size-of-created-disk-temporary-files-and-tables/max_tmp_session_space_usage-system-variable) 用于限制每个用户的临时空间限额。
  + 变量 [https://mariadb.com/docs/server/security/limiting-size-of-created-disk-temporary-files-and-tables/max_tmp_total_space_usage-system-variable](https://mariadb.com/docs/server/security/limiting-size-of-created-disk-temporary-files-and-tables/max_tmp_total_space_usage-system-variable) 用于限制所有用户的临时空间限额。
+ **临时表空间管理**：临时表空间存储临时表，并随着数据的添加而增长。删除临时表时，不会自动回收空间。您可以使用 [mysql.rds\$1execute\$1operation](mysql_rds_execute_operation.md) 过程缩减临时表空间并回收磁盘空间。

有关所有 MariaDB 11.8 特征的列表及其文档，请参阅 MariaDB 网站上的 [MariaDB 11.8 中的更改和改进](https://mariadb.com/kb/en/changes-improvements-in-mariadb-11-8/)和[发行说明 - MariaDB 11.8 系列](https://mariadb.com/kb/en/release-notes-mariadb-11-8-series/)。

有关不支持特征的列表，请参阅 [Amazon RDS 不支持的 MariaDB 特征](MariaDB.Concepts.FeatureNonSupport.md)。

### Amazon RDS 上对 MariaDB 11.4 的支持
<a name="MariaDB.Concepts.FeatureSupport.11-4"></a>

对于运行 MariaDB 版本 11.4 或更高版本的数据库实例，Amazon RDS 支持以下新特征。
+ **密码库** – RDS for MariaDB 将 OpenSSL 替换为已获得 FIPS 140-3 认证的 AWS Libcrypto（AWS-LC）。
+ **简单密码检查插件** – 您可以使用 MariaDB [简单密码检查插件](https://mariadb.com/kb/en/simple-password-check-plugin/)来检查密码是否包含至少特定数量的特定类型字符。有关更多信息，请参阅 [对于 RDS for MariaDB 使用密码验证插件](MariaDB.Concepts.PasswordValidationPlugins.md)。
+ **Cracklib 密码检查插件** – 您可以使用 MariaDB [Cracklib 密码检查插件](https://mariadb.com/kb/en/cracklib-password-check-plugin/)来检查新密码的强度。有关更多信息，请参阅 [对于 RDS for MariaDB 使用密码验证插件](MariaDB.Concepts.PasswordValidationPlugins.md)。
+ **InnoDB 增强功能** – 这些增强功能包括以下项目：
  + 更改缓冲区已删除。有关更多信息，请参阅 [InnoDB 更改缓冲](https://mariadb.com/kb/en/innodb-change-buffering/)。
  + InnoDB 碎片整理已删除。有关更多信息，请参阅 [InnoDB 碎片整理](https://mariadb.com/kb/en/defragmenting-innodb-tablespaces/#innodb-defragmentation)。
+ **新权限** – 管理员用户现在也拥有 `SHOW CREATE ROUTINE` 权限。此权限允许被授权者查看其他用户拥有的例程的 `SHOW CREATE` 定义语句。有关更多信息，请参阅[数据库权限](https://mariadb.com/kb/en/grant/#database-privileges)。
+ **复制改进** – MariaDB 版本 11.4 数据库实例支持二进制日志索引。您可以为每个二进制日志文件创建 GTID 索引。这些索引缩短了查找 GTID 所需的时间，从而提高了复制性能。有关更多信息，请参阅[二进制日志索引](https://mariadb.com/kb/en/gtid/#binlog-indexing)。
+ **已弃用或删除的参数** – 对于 MariaDB 版本 11.4 数据库实例，以下参数已弃用或删除：
  + 已从 [optimizer\$1switch](https://mariadb.com/kb/en/optimizer-switch/) 中删除 `engine_condition_pushdown`
  + [innodb\$1change\$1buffer\$1max\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_change_buffer_max_size)
  + [innodb\$1defragment](https://mariadb.com/kb/en/innodb-system-variables/#innodb_defragment)
  + 已从 [tls\$1version](https://mariadb.com/kb/en/ssltls-system-variables/#tls_version) 中删除 `TLSv1.0` 和 `TLSv1.1`
+ **参数的新默认值** – [innodb\$1undo\$1tablespaces](https://mariadb.com/kb/en/innodb-system-variables/#innodb_undo_tablespaces) 参数的默认值从 `0` 更改为 `3`。
+ **参数的新有效值** – 对于 MariaDB 版本 11.4 数据库实例，以下参数具有新的有效值：
  + [binlog\$1row\$1image](https://mariadb.com/kb/en/replication-and-binary-log-system-variables/#binlog_row_image) 参数的有效值现在包括 `FULL_NODUP`。
  + [OLD\$1MODE](https://mariadb.com/kb/en/old-mode/) 参数的有效值现在包括 `NO_NULL_COLLATION_IDS`。
+ **新参数** – 对于 MariaDB 版本 11.4 数据库实例，以下参数是新的：
  + [transaction\$1isolation](https://mariadb.com/kb/en/server-system-variables/#transaction_isolation) 参数替换 [tx\$1isolation](https://mariadb.com/kb/en/server-system-variables/#tx_isolation) 参数。
  + [transaction\$1read\$1only](https://mariadb.com/kb/en/server-system-variables/#transaction_read_only) 参数替换 [tx\$1read\$1only](https://mariadb.com/kb/en/server-system-variables/#tx_read_only) 参数。
  + [block\$1encryption\$1mode](https://mariadb.com/kb/en/server-system-variables/#block_encryption_mode) 参数定义了 [AES\$1ENCRYPT()](https://mariadb.com/kb/en/aes_encrypt/) 和 [AES\$1DECRYPT()](https://mariadb.com/kb/en/aes_decrypt/) 函数的默认区块加密模式。
  + [character\$1set\$1collations](https://mariadb.com/kb/en/server-system-variables/#character_set_collations) 定义了字符集默认排序规则的覆盖。
  + [binlog\$1gtid\$1index](https://mariadb.com/kb/en/system-versioned-tables/#binlog_gtid_index)、[binlog\$1gtid\$1index\$1page\$1size](https://mariadb.com/kb/en/system-versioned-tables/#binlog_gtid_index_page_size) 和 [binlog\$1gtid\$1index\$1span\$1min](https://mariadb.com/kb/en/system-versioned-tables/#binlog_gtid_index_span_min) 定义了二进制日志 GTID 索引的属性。有关更多信息，请参阅[二进制日志索引](https://mariadb.com/kb/en/gtid/#binlog-indexing)。

有关所有 MariaDB 11.4 特征的列表及其文档，请参阅 MariaDB 网站上的 [MariaDB 11.4 中的更改和改进](https://mariadb.com/kb/en/changes-improvements-in-mariadb-11-4/)和[发行说明 - MariaDB 11.4 系列](https://mariadb.com/kb/en/release-notes-mariadb-11-4-series/)。

有关不支持特征的列表，请参阅 [Amazon RDS 不支持的 MariaDB 特征](MariaDB.Concepts.FeatureNonSupport.md)。

### Amazon RDS 上对 MariaDB 10.11 的支持
<a name="MariaDB.Concepts.FeatureSupport.10-11"></a>

对于运行 MariaDB 版本 10.11 或更高版本的数据库实例，Amazon RDS 支持以下新特征。
+ **密码重用检查插件** – 您可以使用 MariaDB 密码重用检查插件来防止用户重用密码并设置密码的保留期。有关更多信息，请参阅[密码重用检查插件](https://mariadb.com/kb/en/password-reuse-check-plugin/)。
+ **GRANT TO PUBLIC 授权** – 您可以向所有具有服务器访问权限的用户授予权限。有关更多信息，请参阅 [GRANT TO PUBLIC](https://mariadb.com/kb/en/grant/#to-public)。
+ **SUPER 和 READ ONLY ADMIN 权限分离** – 您可以删除所有用户的 READ ONLY ADMIN 权限，即使是以前拥有 SUPER 权限的用户也是如此。
+ **安全** – 现在可以将选项 `--ssl` 设置为 MariaDB 客户端的默认设置。如果配置不正确，MariaDB 不再以静默方式禁用 SSL。
+ **SQL 命令和函数** – 您现在可以使用 `SHOW ANALYZE FORMAT=JSON` 命令和函数 `ROW_NUMBER`、`SFORMAT` 以及 `RANDOM_BYTES`。`SFORMAT` 允许字符串格式化，且默认情况下处于启用状态。只需一条命令即可将分区转换为表和将表转换为分区。围绕 `JSON_*()` 函数还有一些改进。在 10.10 及更高版本中，已弃用 `DES_ENCRYPT` 和 `DES_DECRYPT` 函数。有关更多信息，请参阅 [SFORMAT](https://mariadb.com/kb/en/sformat/)。
+ **InnoDB 增强功能** – 这些增强功能包括以下项目：
  + 重做日志的性能改进，以减少写入放大并提高并发性。
  + 无需重新初始化数据目录，即可更改撤消表空间。此增强功能减少了控制面板开销。它要求重启，但在更改撤消表空间后不需要重新初始化。
  + 支持 `CHECK TABLE … EXTENDED` 和内部索引降序。
  + 改进了批量插入功能。
+ **二进制日志更改** – 这些更改包括以下项目：
  + 分两个阶段记录 `ALTER` 以减少复制延迟。默认情况下，`binlog_alter_two_phase` 参数处于禁用状态，但可以通过参数组启用。
  + 记录 `explicit_defaults_for_timestamp`。
  + 如果事务可以安全地回滚，则不再记录 `INCIDENT_EVENT`。
+ **复制****改进** – 如果主服务器支持 GTID 复制，则 MariaDB 版本 10.11 数据库实例默认情况下使用此功能。另外，`Seconds_Behind_Master` 更精确。
+ **客户端** – 您可以将新的命令行选项用于 `mysqlbinglog` 和 `mariadb-dump`。您可以使用 `mariadb-dump` 转储和还原历史数据。
+ **系统版本控制** – 您可以修改历史记录。MariaDB 会自动创建新的分区。
+ **原子 DDL** – `CREATE OR REPLACE` 现在是原子的。语句要么成功，要么完全相反。
+ **重做日志写入** – 重做日志异步写入。
+ **存储函数** – 存储函数现在支持存储过程中的相同 `IN`、`OUT` 和 `INOUT` 参数。
+ **已弃用或移除的参数** – 对于 MariaDB 版本 10.11 数据库实例，以下参数已弃用或删除：
  + [innodb\$1change\$1buffering](https://mariadb.com/kb/en/innodb-system-variables/#innodb_change_buffering)
  + [innodb\$1disallow\$1writes](https://mariadb.com/kb/en/innodb-system-variables/#innodb_disallow_writes)
  + [innodb\$1log\$1write\$1ahead\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_log_write_ahead_size) 
  + [ innodb\$1prefix\$1index\$1cluster\$1optimization](https://mariadb.com/kb/en/innodb-system-variables/#innodb_prefix_index_cluster_optimization)
  + [ keep\$1files\$1on\$1create](https://mariadb.com/kb/en/server-system-variables/#keep_files_on_create)
  + [old](https://mariadb.com/kb/en/server-system-variables/#old)
+ **动态参数** – 对于 MariaDB 版本 10.11 数据库实例，以下参数现在是动态的：
  + [innodb\$1log\$1file\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_log_file_size)
  + [innodb\$1write\$1io\$1threads](https://mariadb.com/kb/en/innodb-system-variables/#innodb_write_io_threads)
  + [innodb\$1read\$1io\$1threads](https://mariadb.com/kb/en/innodb-system-variables/#innodb_read_io_threads)
+ **参数的新默认值** – 对于 MariaDB 版本 10.11 数据库实例，以下参数具有新的默认值：
  + [explicit\$1defaults\$1for\$1timestamp](https://mariadb.com/kb/en/server-system-variables/#explicit_defaults_for_timestamp) 参数的默认值已从 `OFF` 更改为 `ON`。
  + [optimizer\$1prune\$1level](https://mariadb.com/kb/en/server-system-variables/#optimizer_prune_level) 参数的默认值已从 `1` 更改为 `2`。
+ **参数的新有效值** – 对于 MariaDB 版本 10.11 数据库实例，以下参数具有新的有效值：
  + [old](https://mariadb.com/kb/en/server-system-variables/#old) 参数的有效值已合并到 [old\$1mode](https://mariadb.com/kb/en/server-system-variables/#old_mode) 参数的有效值中。
  + [histogram\$1type](https://mariadb.com/kb/en/server-system-variables/#histogram_type) 参数的有效值现在包括 `JSON_HB`。
  + [innodb\$1log\$1buffer\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_log_buffer_size) 参数的有效值范围现在为 `262144` 至 `4294967295`（256KB 至 4096MB）。
  + [innodb\$1log\$1file\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_log_file_size) 参数的有效值范围现在为 `4194304` 至 `512GB`（4MB 至 512GB）。
  + [optimizer\$1prune\$1level](https://mariadb.com/kb/en/server-system-variables/#optimizer_prune_level) 参数的有效值现在包括 `2`。
+ **新参数** – 对于 MariaDB 版本 10.11 数据库实例，以下参数是新的：
  + [binlog\$1alter\$1two\$1phase](https://mariadb.com/kb/en/replication-and-binary-log-system-variables//#binlog_alter_two_phase) 参数可以改善复制性能。
  + [log\$1slow\$1min\$1examined\$1row\$1limit](https://mariadb.com/kb/en/server-system-variables/#log_slow_min_examined_row_limit) 参数可以改善性能。
  + [log\$1slow\$1query](https://mariadb.com/kb/en/server-system-variables/#log_slow_query) 参数和 [log\$1slow\$1query\$1file](https://mariadb.com/kb/en/server-system-variables/#log_slow_query_file) 参数分别为 `slow_query_log` 和 `slow_query_log_file` 的别名。
  +  [optimizer\$1extra\$1pruning\$1depth](https://mariadb.com/kb/en/server-system-variables/#optimizer_extra_pruning_depth)
  + [system\$1versioning\$1insert\$1history](https://mariadb.com/kb/en/system-versioned-tables/#system_versioning_insert_history)

有关所有 MariaDB 10.11 特征的列表及其文档，请参阅 MariaDB 网站上的 [MariaDB 10.11 中的更改和改进](https://mariadb.com/kb/en/changes-improvements-in-mariadb-1011/)和[发行说明 - MariaDB 10.11 系列](https://mariadb.com/kb/en/release-notes-mariadb-1011-series/)。

有关不支持特征的列表，请参阅 [Amazon RDS 不支持的 MariaDB 特征](MariaDB.Concepts.FeatureNonSupport.md)。

### Amazon RDS 对 MariaDB 10.6 的支持
<a name="MariaDB.Concepts.FeatureSupport.10-6"></a>

对于运行 MariaDB 版本 10.6 或更高版本的数据库实例，Amazon RDS 支持以下新特征：
+ **MyRocks 存储引擎** - 您可以将 MyRocks 存储引擎与 RDS for MariaDB 结合使用，以优化写入密集型高性能 Web 应用程序的存储消耗。有关更多信息，请参阅 [Amazon RDS 上的 MariaDB 支持的存储引擎](MariaDB.Concepts.Storage.md) 和 [MyRocks](https://mariadb.com/kb/en/myrocks/)。
+ **AWS Identity and Access Management (IAM) 数据库身份验证** - 您可以使用 IAM 数据库身份验证来提高安全性和集中管理与 MariaDB 数据库实例的连接。有关更多信息，请参阅 [适用于 MariaDB、MySQL 和 PostgreSQL 的IAM 数据库身份验证](UsingWithRDS.IAMDBAuth.md)。
+ **升级选项** - 您现在可以从以前的任何主要版本（10.3、10.4、10.5）升级到 RDS for MariaDB 版本 10.6。您还可以将现有 MySQL 5.6 或 5.7 数据库实例的快照还原到 MariaDB 10.6 实例。有关更多信息，请参阅 [升级 MariaDB 数据库引擎](USER_UpgradeDBInstance.MariaDB.md)。
+ **延迟复制** - 您现在可以设置一个只读副本落后于源数据库的可配置时间段。在标准 MariaDB 复制配置中，源和副本之间的复制延迟最小。使用延迟复制时，您可以将故意延迟设置为灾难恢复策略。有关更多信息，请参阅 [使用 MariaDB 配置延迟复制](USER_MariaDB.Replication.ReadReplicas.DelayReplication.md)。
+ **Oracle PL/SQL 兼容性** - 通过使用 RDS for MariaDB 版本 10.6，您可以更轻松地将旧版 Oracle 应用程序迁移到 Amazon RDS。有关更多信息，请参阅 [SQL\$1MODE=ORACLE](https://mariadb.com/kb/en/sql_modeoracle/)。
+ **原子 DDL** - 您的动态数据语言 (DDL) 语句与 RDS for MariaDB 版本 10.6 结合使用可能相对安全。`CREATE TABLE`、`ALTER TABLE`、`RENAME TABLE`、`DROP TABLE`、`DROP DATABASE` 和相关的 DDL 语句现在是原子的。要么语句成功，要么完全相反。有关更多信息，请参阅[原子 DDL](https://mariadb.com/kb/en/atomic-ddl/)。
+ **其他增强功能** - 这些增强功能包括在 SQL 中将 JSON 数据转换为关系格式的 `JSON_TABLE` 功能，以及使用 Innodb 更快地加载空表数据。它们还包括用于分析和故障排除的新 `sys_schema`，用于忽略未使用索引的优化器增强以及性能改进。有关更多信息，请参阅 [JSON\$1TABLE](https://mariadb.com/kb/en/json_table/)。
+ **参数的新默认值** – 对于 MariaDB 10.6 版本数据库实例，以下参数具有新的默认值：
  + 以下参数的默认值已从 `utf8` 更改为 `utf8mb3`：
    + [character\$1set\$1client](https://mariadb.com/kb/en/server-system-variables/#character_set_client)
    + [character\$1set\$1connection](https://mariadb.com/kb/en/server-system-variables/#character_set_connection)
    + [character\$1set\$1results](https://mariadb.com/kb/en/server-system-variables/#character_set_results)
    + [character\$1set\$1system](https://mariadb.com/kb/en/server-system-variables/#character_set_system)

    尽管这些参数的默认值已更改，但功能没有变化。有关更多信息，请参阅 MariaDB 文档中的[支持的字符集和排序规则](https://mariadb.com/kb/en/supported-character-sets-and-collations/)。
  + [collation\$1connection](https://mariadb.com/kb/en/server-system-variables/#collation_connection) 参数的默认值已从 `utf8_general_ci` 更改为 `utf8mb3_general_ci`。尽管此参数的默认值已更改，但功能没有变化。
  + [old\$1mode](https://mariadb.com/kb/en/server-system-variables/#old_mode) 参数的默认值已从未设置更改为 `UTF8_IS_UTF8MB3`。尽管此参数的默认值已更改，但功能没有变化。

有关所有 MariaDB 10.6 特征的列表及其文档，请参阅 MariaDB 网站上的 [MariaDB 10.6 中的更改和改进](https://mariadb.com/kb/en/changes-improvements-in-mariadb-106/)和[发行说明 - MariaDB 10.6 系列](https://mariadb.com/kb/en/release-notes-mariadb-106-series/)。

有关不支持特征的列表，请参阅 [Amazon RDS 不支持的 MariaDB 特征](MariaDB.Concepts.FeatureNonSupport.md)。

### Amazon RDS 对 MariaDB 10.5 的支持
<a name="MariaDB.Concepts.FeatureSupport.10-5"></a>

对于运行 MariaDB 版本 10.5 或更高版本的数据库实例，Amazon RDS 支持以下新特征：
+ **InnoDB 增强功能** – MariaDB 10.5 版本包括 InnoDB 增强功能。有关更多信息，请参阅 MariaDB 文档中的 [InnoDB：性能改进等](https://mariadb.com/kb/en/changes-improvements-in-mariadb-105/#innodb-performance-improvements-etc)。
+ **Performance Schema 更新** – MariaDB 10.5 版本包括 Performance Schema 更新。有关更多信息，请参阅 MariaDB 文档中的 [Performance Schema 更新以满足 MySQL 5.7 工具和表的要求](https://mariadb.com/kb/en/changes-improvements-in-mariadb-105/#performance-schema-updates-to-match-mysql-57-instrumentation-and-tables)。
+ **InnoDB 重做日志中的一个文件** – 在 10.5 之前的 MariaDB 版本中，`innodb_log_files_in_group` 参数的值设置为 `2`。在 MariaDB 10.5 版本中，此参数的值设置为 `1`。

  如果从之前的版本升级到 MariaDB 10.5 版本，而且未修改参数，则 `innodb_log_file_size` 参数值不变。但是，它适用于一个日志文件而非两个。因此，升级后的 MariaDB 10.5 版本数据库实例使用的重做日志大小是升级前所用大小的一半。此变化可能会对性能产生明显的影响。要解决此问题，您可以将 `innodb_log_file_size` 参数的值增大两倍。有关修改参数的信息，请参阅 [在 Amazon RDS 中修改数据库参数组中的参数](USER_WorkingWithParamGroups.Modifying.md)。
+ **SHOW SLAVE STATUS 命令不受支持** – 在 10.5 之前的 MariaDB 版本中，`SHOW SLAVE STATUS` 命令需要 `REPLICATION SLAVE` 特权。在 MariaDB 10.5 版本中，等效的 `SHOW REPLICA STATUS` 命令需要 `REPLICATION REPLICA ADMIN` 特权。此新权限不会向 RDS 主用户授予。

  请不要使用 `SHOW REPLICA STATUS` 命令，而是运行新的 `mysql.rds_replica_status` 存储过程以返回类似信息。有关更多信息，请参阅“[mysql.rds\$1replica\$1status](mysql_rds_replica_status.md)”。
+ **SHOW RELAYLOG EVENTS 命令不受支持** – 在 10.5 之前的 MariaDB 版本中，`SHOW RELAYLOG EVENTS` 命令需要 `REPLICATION SLAVE` 特权。在 MariaDB 10.5 版本中，此命令需要 `REPLICATION REPLICA ADMIN` 特权。此新权限不会向 RDS 主用户授予。
+ **参数的新默认值** – 对于 MariaDB 10.5 版本数据库实例，以下参数具有新的默认值：
  + [max\$1connections](https://mariadb.com/kb/en/server-system-variables/#max_connections) 参数的默认值已更改为 `LEAST({DBInstanceClassMemory/25165760},12000)`。有关 `LEAST` 参数函数的信息，请参阅 [数据库参数函数](USER_ParamValuesRef.md#USER_ParamFunctions)。
  + [innodb\$1adaptive\$1hash\$1index](https://mariadb.com/kb/en/innodb-system-variables/#innodb_adaptive_hash_index) 参数的默认值已更改为 `OFF` (`0`)。
  + [innodb\$1checksum\$1algorithm](https://mariadb.com/kb/en/innodb-system-variables/#innodb_checksum_algorithm) 参数的默认值已更改为 `full_crc32`。
  + [innodb\$1log\$1file\$1size](https://mariadb.com/kb/en/innodb-system-variables/#innodb_log_file_size) 参数的默认值已更改为 2 GB。

有关所有 MariaDB 10.5 特征的列表及其文档，请参阅 MariaDB 网站上的 [MariaDB 10.5 中的更改和改进](https://mariadb.com/kb/en/changes-improvements-in-mariadb-105/)和[发行说明 - MariaDB 10.5 系列](https://mariadb.com/kb/en/release-notes-mariadb-105-series/)。

有关不支持特征的列表，请参阅 [Amazon RDS 不支持的 MariaDB 特征](MariaDB.Concepts.FeatureNonSupport.md)。

### Amazon RDS 上对 MariaDB 10.4 的支持
<a name="MariaDB.Concepts.FeatureSupport.10-4"></a>

对于运行 MariaDB 版本 10.4 或更高版本的数据库实例，Amazon RDS 支持以下新特征：
+ **用户账户安全增强** – [密码过期](https://mariadb.com/kb/en/user-password-expiry/)和[账户锁定](https://mariadb.com/kb/en/account-locking/)改进
+ **优化程序增强** – [优化程序跟踪特征](https://mariadb.com/kb/en/optimizer-trace-overview/)
+ **InnoDB 增强** – [即时 DROP COLUMN 支持](https://mariadb.com/kb/en/alter-table/#drop-column)以及 `VARCHAR` 和 `ROW_FORMAT=DYNAMIC` 的即时 `ROW_FORMAT=COMPACT` 扩展 
+ **新参数** – 包括 [tcp\$1nodedelay](https://mariadb.com/kb/en/server-system-variables/#tcp_nodelay)、[tls\$1version](https://mariadb.com/kb/en/ssltls-system-variables/#tls_version) 和 [gtid\$1cleanup\$1batch\$1size](https://mariadb.com/kb/en/gtid/#gtid_cleanup_batch_size)

有关所有 MariaDB 10.4 特征的列表及其文档，请参阅 MariaDB 网站上的 [MariaDB 10.4 中的更改和改进](https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-104/)和[发行说明 - MariaDB 10.4 系列](https://mariadb.com/kb/en/library/release-notes-mariadb-104-series/)。

有关不支持特征的列表，请参阅 [Amazon RDS 不支持的 MariaDB 特征](MariaDB.Concepts.FeatureNonSupport.md)。

# Amazon RDS 上的 MariaDB 支持的存储引擎
<a name="MariaDB.Concepts.Storage"></a>

RDS for MariaDB 支持以下存储引擎。

**Topics**
+ [InnoDB 存储引擎](#MariaDB.Concepts.Storage.InnoDB)
+ [MyRocks 存储引擎](#MariaDB.Concepts.Storage.MyRocks)

目前，RDS for MariaDB 不支持其他存储引擎。

## InnoDB 存储引擎
<a name="MariaDB.Concepts.Storage.InnoDB"></a>

尽管 MariaDB 支持功能不同的多种存储引擎，但并非所有引擎都针对恢复和数据耐久性而进行了优化。InnoDB 是 Amazon RDS 上的 MariaDB 数据库实例的推荐存储引擎。Amazon RDS 的时间点还原和快照还原等特征要求使用可恢复的存储引擎，且仅支持 MariaDB 版本的推荐存储引擎。

有关更多信息，请参阅 [InnoDB](https://mariadb.com/kb/en/innodb/)。

## MyRocks 存储引擎
<a name="MariaDB.Concepts.Storage.MyRocks"></a>

MyRocks 存储引擎在 RDS for MariaDB 版本 10.6 及更高版本中提供。在生产数据库中使用 MyRocks 存储引擎之前，我们建议您执行彻底的基准测试和测试，以验证您的使用案例相比 InnoDB 的任何潜在优势。

MariaDB 版本 10.6 的默认参数组包括 MyRocks 参数。有关更多信息，请参阅 [MariaDB 的参数](Appendix.MariaDB.Parameters.md) 和 [Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)。

要创建使用 MyRocks 存储引擎的表，请在 `CREATE TABLE` 语句中指定 `ENGINE=RocksDB`。以下示例创建使用 MyRocks 存储引擎的表。

```
CREATE TABLE test (a INT NOT NULL, b CHAR(10)) ENGINE=RocksDB;
```

我们强烈建议您不要运行同时跨 InnoDB 和 MyRocks 表的事务。MariaDB 不保证跨存储引擎事务的 ACID（原子性、一致性、隔离性、持久性）。尽管可以在数据库实例中同时使用 InnoDB 和 MyRocks 表，但我们不建议使用这种方法，除非在从一个存储引擎迁移到另一个存储引擎的过程中。数据库实例中同时存在 InnoDB 和 MyRocks 表时，每个存储引擎都有自己的缓冲池，这可能会导致性能降低。

MyRocks 不支持 `SERIALIZABLE` 隔离或 gap 锁定。因此，通常不能将 MyRocks 与基于语句的复制结合使用。有关更多信息，请参阅 [MyRocks 和复制](https://mariadb.com/kb/en/myrocks-and-replication/)。

目前，您只能修改以下 MyRocks 参数：
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_block_cache_size](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_block_cache_size)
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_bulk_load](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_bulk_load)
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_bulk_load_size](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_bulk_load_size)
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_deadlock_detect](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_deadlock_detect)
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_deadlock_detect_depth](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_deadlock_detect_depth)
+ [https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_max_latest_deadlocks](https://mariadb.com/kb/en/myrocks-system-variables/#rocksdb_max_latest_deadlocks)

MyRocks 存储引擎和 InnoDB 存储引擎可根据 `rocksdb_block_cache_size` 和 `innodb_buffer_pool_size` 参数的设置争用内存。在某些情况下，您可能只打算在特定数据库实例上使用 MyRocks 存储引擎。如果是这样，我们建议将 `innodb_buffer_pool_size minimal` 参数设置为最小值并将 `rocksdb_block_cache_size` 设置为尽可能高。

您可以使用 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html) 和 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html) 操作来访问 MyRocks 日志文件。

有关 MyRocks 的更多信息，请参阅 MariaDB 网站上的 [MyRocks](https://mariadb.com/kb/en/myrocks/)。

# Amazon RDS 上的 MariaDB 的缓存预热
<a name="MariaDB.Concepts.XtraDBCacheWarming"></a>

InnoDB 高速缓存预热可为您的 MariaDB 实例提供性能收益，方式是在数据库实例关闭时保存缓冲池的当前状态，然后在数据库实例启动时从保存的信息重新加载缓冲池。此方法将不再需要缓冲池使用常规数据库进行“预热”，而是预加载具有已知常见查询的页的缓冲池。有关缓存预热的更多信息，请参阅 MariaDB 文档中的[转储和还原缓冲池](http://mariadb.com/kb/en/mariadb/xtradbinnodb-buffer-pool/#dumping-and-restoring-the-buffer-pool)。

默认情况下，在 MariaDB 10.3 和更高版本的数据库实例上启用缓存预热。要启用该功能，请将数据库实例的参数组中的 `innodb_buffer_pool_dump_at_shutdown` 和 `innodb_buffer_pool_load_at_startup` 参数设置为 1。更改参数组中的这些参数值将影响使用该参数组的所有 MariaDB 数据库实例。要为特定 MariaDB 数据库实例启用缓存预热，您可能需要为这些数据库实例创建新的参数组。有关参数组的信息，请参阅[Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)。

缓存预热主要为使用标准存储的数据库实例提高性能。如果您使用 PIOPS 存储，则通常看不到显著的性能收益。

**重要**  
如果您的 MariaDB 数据库实例未正常关闭 (例如，在故障转移期间)，则缓冲池状态将不会保存到磁盘。在此情况下，MariaDB 将在重新启动数据库实例时加载任何可用的缓冲池文件。这不会造成任何损害，但还原后的缓冲池可能不会反映缓冲池在重新启动前的最新状态。要确保您拥有启动时可用于预热 缓存的缓冲池的最新状态，建议您定期“按需”转储缓冲池。您可以按需转储或加载缓冲池。  
您可创建事件来定期自动转储缓冲池。例如，以下语句创建一个名为 `periodic_buffer_pool_dump` 的事件，该事件每小时转储一次缓冲池。  

```
1. CREATE EVENT periodic_buffer_pool_dump 
2.    ON SCHEDULE EVERY 1 HOUR 
3.    DO CALL mysql.rds_innodb_buffer_pool_dump_now();
```
有关更多信息，请参阅 MariaDB 文档中的[事件](http://mariadb.com/kb/en/mariadb/stored-programs-and-views-events/)。

## 按需转储和加载缓冲池
<a name="MariaDB.Concepts.XtraDBCacheWarming.OnDemand"></a>

您可以使用以下存储过程按需保存和加载 缓存：
+ 要将缓冲池的当前状态转储到磁盘，请调用 [mysql.rds\$1innodb\$1buffer\$1pool\$1dump\$1now](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_dump_now) 存储过程。
+ 要从磁盘加载缓冲池的已保存状态，请调用 [mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1now](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_load_now) 存储过程。
+ 要取消正在进行的加载操作，请调用 [mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1abort](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_load_abort) 存储过程。

# Amazon RDS 不支持的 MariaDB 特征
<a name="MariaDB.Concepts.FeatureNonSupport"></a>

Amazon RDS 上不支持以下 MariaDB 特征：
+ S3 存储引擎
+ 身份验证插件 – GSSAPI
+ 身份验证插件 – Unix Socket
+ AWS Key Management 加密插件
+ 低于 10.6 的 MariaDB 版本的延迟复制
+ InnoDB 和 Aria 的本机 MariaDB 静态加密

  您可以按照 [加密 Amazon RDS 资源](Overview.Encryption.md) 中的说明启用 MariaDB 数据库实例的加密。
+ HandlerSocket
+ 低于 10.6 的 MariaDB 版本的 JSON 表类型
+ MariaDB ColumnStore
+ MariaDB Galera 集群
+ 多源复制
+ 低于 10.6 的 MariaDB 版本的 MyRocks 存储引擎
+ 适用于低于 11.4 的 MariaDB 版本的密码验证插件 `simple_password_check` 和 `cracklib_password_check` 
+ Spider 存储引擎
+ Sphinx 存储引擎
+ TokuDB 存储引擎
+ 存储特定于引擎的对象属性，如 MariaDB 文档中的[引擎定义的新表/字段/索引属性](http://mariadb.com/kb/en/mariadb/engine-defined-new-tablefieldindex-attributes/)中所述
+ 表和表空间加密
+ Hashicorp 密钥管理插件
+ 并行运行两个升级

为了产生托管服务体验，Amazon RDS 不允许通过 shell 访问数据库实例，而仅限访问某些需要高级特权的系统过程和表。Amazon RDS 支持使用任何标准 SQL 客户端应用程序访问数据库实例上的数据库。Amazon RDS 不允许使用 Telnet、安全外壳（SSH）或 Windows 远程桌面连接直接从主机访问数据库实例。