Amazon RDS 上的 MariaDB 支持的存储引擎
RDS for MariaDB 支持以下存储引擎。
目前,RDS for MariaDB 不支持其他存储引擎。
InnoDB 存储引擎
尽管 MariaDB 支持功能不同的多种存储引擎,但并非所有引擎都针对恢复和数据耐久性而进行了优化。InnoDB 是 Amazon RDS 上的 MariaDB 数据库实例的推荐存储引擎。Amazon RDS 的时间点还原和快照还原等特征要求使用可恢复的存储引擎,且仅支持 MariaDB 版本的推荐存储引擎。
有关更多信息,请参阅 InnoDB
MyRocks 存储引擎
MyRocks 存储引擎在 RDS for MariaDB 版本 10.6 及更高版本中提供。在生产数据库中使用 MyRocks 存储引擎之前,我们建议您执行彻底的基准测试和测试,以验证您的使用案例相比 InnoDB 的任何潜在优势。
MariaDB 版本 10.6 的默认参数组包括 MyRocks 参数。有关更多信息,请参阅 MariaDB 的参数 和 Amazon RDS 的参数组。
要创建使用 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 和复制
目前,您只能修改以下 MyRocks 参数:
MyRocks 存储引擎和 InnoDB 存储引擎可根据 rocksdb_block_cache_size
和 innodb_buffer_pool_size
参数的设置争用内存。在某些情况下,您可能只打算在特定数据库实例上使用 MyRocks 存储引擎。如果是这样,我们建议将 innodb_buffer_pool_size minimal
参数设置为最小值并将 rocksdb_block_cache_size
设置为尽可能高。
您可以使用 DescribeDBLogFiles
和 DownloadDBLogFilePortion
操作来访问 MyRocks 日志文件。
有关 MyRocks 的更多信息,请参阅 MariaDB 网站上的 MyRocks