

# 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 DB インスタンスについて推奨されているストレージエンジンです。Amazon RDS でのポイントインタイムの復元やスナップショット復元などの機能には、回復可能なストレージエンジンが必要であり、MariaDB バージョンで推奨された ストレージエンジンのみがサポートされています。

詳細については、「[InnoDB](https://mariadb.com/kb/en/innodb/)」を参照してください。

## MyRocks ストレージエンジン
<a name="MariaDB.Concepts.Storage.MyRocks"></a>

MyRocks ストレージエンジンは RDS で 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 (不可分性、整合性、分離性、耐久性) を保証するものではありません。DB インスタンスに InnoDB テーブルと MyRocks テーブルの両方を含めることは可能ですが、一方のストレージエンジンから別のストレージエンジンへの移行中を除き、この方法はお勧めしません。InnoDB テーブルと MyRocks テーブルの両方が DB インスタンスに存在する場合、各ストレージエンジンには独自のバッファプールがあり、パフォーマンスが低下する可能性があります。

MyRocks では `SERIALIZABLE` アイソレーションまたはギャップロックはサポートされていません。したがって、一般的に MyRocks をステートメントベースのレプリケーションで使用することはできません。詳細については、「[MyRocks and Replication](https://mariadb.com/kb/en/myrocks-and-replication/)」(MyRocks とレプリケーション) を参照してください。

現在、次の 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` パラメータの設定により競合する可能性があります。場合によっては、特定の DB インスタンスで 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/)」を参照してください。