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

PolarDB:X-Engine の有効化

最終更新日:Jun 22, 2026

このトピックでは、高圧縮エンジン (X-Engine) を有効にする方法と、その前提条件および注意事項について説明します。

前提条件

  • カーネルバージョンは、次の条件を満たす必要があります:

    • 8.0.1.1.31 以降。

    • 8.0.2.2.12 以降。

    クラスターのバージョンを確認するには、「カーネルバージョンの照会」をご参照ください。

  • マルチマスタークラスター (Limitless) は、高圧縮エンジン (X-Engine) をサポートしていません。

  • クラスターのプライマリノードには 8 GB 以上のメモリが必要であり、各読み取り専用ノードはプライマリノードと同等以上の仕様である必要があります。

  • クラスターは、グローバルデータベースネットワーク (GDN) に参加していません。

注意事項

  • 高圧縮エンジン (X-Engine) には、エンジン機能および大規模トランザクション機能に関する制限があります。

    制限

    エンジン機能の制限

    カテゴリ

    機能

    説明

    SQL 機能

    外部キー

    サポートしていません

    一時テーブル

    サポートしていません

    生成列

    サポートしていません

    HANDLER API

    サポートしていません

    列および列プロパティ

    テーブルあたりの列の最大数

    10,000

    レコード長の最大値

    256 MB

    GIS データ型

    X-Engine は、geometry、point、linestring、polygon、multipoint、multilinestring、multipolygon、geometrycollection など、GIS 関連のデータ型をサポートしていません。

    インデックス

    ハッシュインデックス

    サポートしていません

    空間インデックス

    サポートしていません。全文検索インデックスもサポートしていません。

    トランザクション

    トランザクション分離レベル

    次の 2 つの分離レベルをサポートしています:

    • READ COMMITTED (RC)

    • REPEATABLE READ (RR)

    トランザクションあたりの最大行数

    デフォルトでは、1 つのトランザクションに最大 100,000 行を含めることができます。この上限は、loose_xengine_bulk_load_size パラメーターを使用して変更できます。なお、1 つのトランザクション内で 10,000 行以上が変更されると、commit in middle 機能が有効になります。

    セーブポイント

    サポートしていません

    XA トランザクション

    内部 XA トランザクションをサポートしています。

    ロック

    ロック粒度

    • テーブルレベルロックと行レベルロックをサポートしています。

    • ギャップロックはサポートしていません。

    SKIP LOCKED

    サポートしていません

    NOWAIT

    サポートしていません

    文字セット

    非インデックス列でサポートしている文字セット

    非インデックス列では、すべての文字セットと照合順序をサポートしています。

    インデックス列でサポートしている文字セット

    • latin1 (latin1_bin)

    • gbk (gbk_chinese_ci、gbk_bin)

    • utf8 (utf8_general_ci、utf8_bin)

    • utf8mb4 (utf8mb4_0900_ai_ci、utf8mb4_general_ci、utf8mb4_bin)

    プライマリ/セカンダリレプリケーション

    バイナリログ形式

    次の 3 つの形式をサポートしています:

    • stmt

    • row

    • mixed

    説明

    デフォルトの形式は row です。stmt または mixed 形式を使用すると、特定の高同時実行シナリオでデータのセキュリティが損なわれる可能性があります。

    説明

    このトピックに記載されていない機能については、X-Engine は InnoDB と同様に動作します。

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

    X-Engine は大規模トランザクションをサポートしていません。トランザクションが 10,000 行以上を変更すると、X-Engine は commit in middle 機能を有効にします。この機能により、X-Engine は現在のトランザクションを内部的にコミットし、新しいサブトランザクションを開始して処理を継続します。ただし、commit in middle は、トランザクションの原子性を厳密には保証しません。次の影響に注意してください:

    • 大量のデータを挿入するトランザクションを開始すると、commit in middle 機能によって、トランザクションが完了する前に一部のデータがコミットされる場合があります。この部分的にコミットされたデータは、他の同時実行トランザクションから参照可能になります。

    • commit in middle 機能によって一部がコミットされたトランザクションは、完全にロールバックできません。

      DROP TABLE t1;
      CREATE TABLE t1(c1 int primary key , c2 int)ENGINE=xengine;
      BEGIN;
      call insert_data(12000); // commit in middle をトリガーするために 12,000 行を挿入します。最初の 10,000 行がコミットされます。
      rollback;// ロールバック操作では最後の 2,000 行のみを元に戻せます。
      SELECT COUNT(*) FROM t1; // クエリでは、コミット済みの 10,000 行が引き続き検出されます。
      +----------+
      | COUNT(*) |
      +----------+
      |    10000 |
      +----------+
      1 row in set (0.00 sec)
    • 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; // DELETE 操作により commit in middle がトリガーされ、同一トランザクション内で挿入された行を見落とします。
      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 を有効にするには、2 つの方法があります。

方法 1: 既存のクラスターの場合

  1. PolarDB コンソールにログインします。左側メニューで、クラスター をクリックします。クラスターの [リージョン] を選択し、クラスター ID をクリックしてクラスターの詳細ページを開きます。

  2. 左側メニューで、設定と管理 > > [データライフサイクル] を選択します。[データライフサイクル] タブで、有効化 をクリックします。

    説明

    [データライフサイクル] タブが表示されない場合は、クラスターが前提条件を満たしているか確認してください。

    [X-Engine (ウォームデータ)] タブをクリックします。ページ上の通知には、X-Engine は一度有効にすると無効にできないこと、有効化にはクラスターの再起動が必要であり、最大 30 秒間の接続断が発生する可能性があることが記載されています。また、ページには「プライマリノードに 8 GB 以上のメモリがある」、「各読み取り専用ノードの仕様がプライマリノード以上である」、「クラスターが GDN に参加していない」という 3 つの前提条件チェックが表示されます。すべての条件が満たされている場合にのみ、先に進むことができます。

  3. [データライフサイクル] ダイアログボックスで、ビジネス要件に基づいて X-Engine のメモリ比率をカスタマイズし、今すぐ SQL 監査を有効にしてください。 をクリックします。

    次の表に、3 つの典型的なユースケースで推奨されるメモリ比率の設定を示します。特定の使用状況に合わせて設定を調整できます。

    ユースケース

    InnoDB メモリ (%)

    X-Engine メモリ (%)

    InnoDB はホットデータを保存し、X-Engine はコールドデータを保存します。アーカイブされたコールドデータはほとんどアクセスされません。

    80

    20

    InnoDB はホットデータを保存し、X-Engine はウォームデータを保存します。アーカイブされたウォームデータは、引き続き更新またはクエリされます。

    50

    50

    InnoDB は少数のテーブルを保存し、X-Engine は多数のテーブルを保存します。両方のエンジンのデータは、アクティブに更新またはクエリされます。

    20

    80

    説明
    • X-Engine を有効にした後、設定と管理 > > [データライフサイクル] ページの [データライフサイクル] タブで、特定のワークロードに合わせていつでもメモリ比率を調整できます。

    • X-Engine のメモリ比率は 10% から 90% の間で設定できます。すべてのテーブルに X-Engine を使用し、InnoDB テーブルがない場合は、X-Engine のメモリ比率を 90% に設定できます。

方法 2: 新規クラスターの場合

PolarDB for MySQL クラスターを購入する際に、[ストレージエンジン][InnoDB & X-Engine] に設定し、X-Engine のメモリ比率を調整できます。詳細については、「クラスターの購入」[ストレージエンジン] オプションをご参照ください。

説明

X-Engine を有効にした後、設定と管理 > > [データライフサイクル] ページの [データライフサイクル] タブで、特定のワークロードに合わせていつでもメモリ比率を調整できます。

[X-Engine 比率の有効化] セクションで、スライダーを使用して X-Engine と InnoDB の間のメモリの比率を設定します。範囲は 10% から 90% です。たとえば、50% に設定すると、下に X-Engine: 4 GB; InnoDB: 4 GB というヒントが表示されます。

[X-Engine (ウォームデータ)] タブを選択します。X-Engine 比率エリアで、[編集] をクリックして比率を調整します。