

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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` 隔離或間隙鎖定。所以，通常您不能將 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/)。