すべてのプロダクト
Search
ドキュメントセンター

PolarDB:X-Engine の有効化

最終更新日:Mar 28, 2026

X-Engine は、ウォームデータ向けに最適化されたストレージエンジンです。LSM ツリーアーキテクチャを採用しており、InnoDB と比較してストレージコストを削減できます。そのため、ホットデータほど頻繁ではないものの、依然としてアクセスや更新が行われるデータに適しています。

前提条件

開始する前に、ご利用のクラスターが次の要件をすべて満たしていることを確認してください。

  • リビジョンバージョンが 8.0.1.1.31 以降、または 8.0.2.2.12 以降であること。バージョンを確認するには、「エンジンバージョンのクエリ」をご参照ください。

  • このクラスターは、「マルチマスタークラスター (Limitless) Edition」ではありません。この Edition では X-Engine はサポートされていません。

  • プライマリノードのメモリが 8 GB 以上であること。読み取り専用ノードのスペックは、プライマリノード以上である必要があります。

  • クラスターがグローバルデータベースネットワーク (GDN) に参加していないこと。

制限事項

機能の制限

X-Engine は InnoDB のすべての機能をサポートしているわけではありません。次の表に記載されていない機能は、InnoDB と同じように動作します。

カテゴリ特徴動作
SQL外部キー非対応
SQL一時テーブル非対応
SQL生成列非対応
SQLハンドラー API非対応
列のプロパティ最大列長 (longblob, longtext, json)32 MB
GIS データの型GEOMETRY、POINT、LINESTRING、POLYGON、MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEMOMETRYCOLLECTION非対応
インデックスハッシュインデックス非対応
インデックス空間インデックスとフルテキストインデックス非対応
トランザクションサポートされる分離レベルリードコミッティド (RC) とリピータブルリード (RR) のみ
トランザクショントランザクションあたりの最大データ量32 MB
トランザクションセーブポイント非対応
トランザクションXA トランザクション内部 XA トランザクションのみ
ロックサポートされるロック粒度テーブルレベルロックと行レベルロック (ギャップロックは非対応)
ロックSKIP LOCKED非対応
ロックNOWAIT非対応
文字セットインデックスなしの列すべての文字セット
文字セットインデックス付きの列Latin1 (latin1_bin)、GBK (gbk_chinese_ci, gbk_bin)、UTF-8 (utf8_general_ci, utf8_bin)、UTF-8MB4 (utf8mb4_0900_ai_ci, utf8mb4_general_ci, utf8mb4_bin)
レプリケーションバイナリログ形式stmt、row、mixed。デフォルトの形式は row です。
説明

`stmt` および `mixed` バイナリログ形式は、特定の同時書き込みシナリオでデータセキュリティの問題を引き起こす可能性があります。書き込み負荷の高いワークロードでは `row` 形式を使用してください。

大規模トランザクションの制限

X-Engine は大規模トランザクションをサポートしていません。トランザクションが 10,000 行以上を変更すると、X-Engine は自動的に commit in middle メカニズムをトリガーします。これにより、内部でデータがバッチでコミットされ、サブトランザクションが開始されて処理が続行されます。この動作はトランザクションの原子性を保証しません。

重要

commit in middle メカニズムはエラーを生成しません。これはトランザクションのセマンティクスを暗黙的に変更します。単一の操作で 10,000 行以上を変更するトランザクションを避けるように、アプリケーションを設計してください。

以下の例は、commit in middle がさまざまな操作にどのように影響するかを示しています。

大規模な挿入後の部分的なロールバック

大規模な INSERT トランザクションが commit in middle をトリガーした場合、コミットされた行はロールバックできません。コミットされていない残りの行のみがロールバックされます。

DROP TABLE t1;
CREATE TABLE t1(c1 int primary key, c2 int) ENGINE=xengine;
BEGIN;
CALL insert_data(12000); -- 12,000 行を挿入。commit in middle が最初の 10,000 行をコミットします
ROLLBACK;               -- 最後の 2,000 行のみがロールバックされます
SELECT COUNT(*) FROM t1;

期待される出力:

+----------+
| COUNT(*) |
+----------+
|    10000 |
+----------+
1 row in set (0.00 sec)

DELETE はトランザクションの途中でコミットされた行を読み取れない

同じ大規模トランザクション内で DELETE の前に INSERT がある場合、commit in middle メカニズムにより、DELETE が新しくコミットされた行を見逃す可能性があります。

DROP TABLE t1;
CREATE TABLE t1(c1 int primary key, c2 int) ENGINE=xengine;
CALL insert_data(10000);
BEGIN;
INSERT INTO t1 VALUES(10001, 10001), (10002, 10002);
DELETE FROM t1 WHERE c1 >= 0; -- commit in middle をトリガー。挿入された 2 行は削除されません
COMMIT;
SELECT * FROM t1;

期待される出力:

+-------+-------+
| c1    | c2    |
+-------+-------+
| 10001 | 10001 |
| 10002 | 10002 |
+-------+-------+
2 rows in set (0.00 sec)

注意事項

  • X-Engine を有効にすると、クラスターの自動再起動がトリガーされます。約 30 秒の接続中断が予想されます。オフピーク時間帯に X-Engine を有効にし、ご利用のアプリケーションが自動再接続をサポートしていることを確認してください。

  • 有効化後、X-Engine を無効にすることはできません。

  • 有効化後、クラスターは GDN に参加できなくなります。

X-Engine の有効化

ご利用のクラスターが既に存在するかどうかに基づいて、次のいずれかの方法を選択してください。

方法1:既存のクラスターで X-Engine を有効化

  1. PolarDB コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。リージョンを選択し、クラスター ID をクリックして [基本情報] ページを開きます。

  2. 左側のナビゲーションウィンドウで、[設定と管理] > [データライフサイクル] を選択します。[X-Engine (ウォームデータ)] タブをクリックし、[有効化] をクリックします。

    説明

    [X-Engine (ウォームデータ)] タブが表示されない場合は、ご利用のクラスターが上記の前提条件をすべて満たしていることを確認してください。

    image

  3. [X-Engine の割合を設定] ダイアログボックスで、ワークロードに基づいて X-Engine のメモリとストレージの割合を設定し、[今すぐ有効化] をクリックします。次の表を参考に、開始時の割合を選択してください。

    シナリオInnoDB (%)X-Engine (%)
    ほとんどがホットデータで、アクセス頻度の低いコールドデータがある8020
    ホットデータと、依然として更新・クエリされるコールドデータが混在している5050
    少量のホットデータと、更新・クエリ対象の大量のウォームデータがある2080
    説明

    X-Engine (%) は 10% から 90% の間に設定する必要があります。すべてのテーブルで X-Engine を使用する場合は、X-Engine (%) を 90% に設定します。有効化後、[設定と管理] > [データライフサイクル][X-Engine (ウォームデータ)] タブで割合を調整します。

方法2:クラスター購入時に X-Engine を有効化

新しいクラスターで X-Engine を有効にするには、[ストレージエンジン] パラメーターを InnoDB & X-Engine に設定し、クラスターの購入時に X-Engine (%) の値を設定します。詳細については、「クラスターの購入」の [ストレージエンジン] パラメーターをご参照ください。

imageimage
説明

クラスターが作成された後、[X-Engine (ウォームデータ)] タブの割合を [設定項目と管理] > [データライフサイクル] の下で調整します。

次のステップ