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

PolarDB:X-Engineの有効化

最終更新日:Feb 17, 2025

このトピックでは、X-Engineを有効にする方法について説明します。 このトピックでは、X-Engineを有効にするための条件と注意事項についても説明します。

前提条件

  • クラスターのリビジョンバージョンは、次のいずれかの要件を満たしています。

    • 8.0.1.1.31以降。

    • 8.0.2.2.12以降。

    クラスターバージョンの確認方法については、「エンジンバージョンの照会」をご参照ください。

  • X-Engineは、Multi-master Cluster (Limitless) Editionのクラスターでは有効にできません。

  • クラスターのプライマリノードには、少なくとも8 GBのメモリがあります。 クラスター内の読み取り専用ノードの仕様は、プライマリノードの仕様よりも高いか、同じである必要があります。

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

使用上の注意

  • X-Engineは、機能と大規模なトランザクションに制限を課します。

    制限事項

    機能の制限

    カテゴリ

    機能

    説明

    SQLの特徴

    外部キー

    非対応

    一時テーブル

    非対応

    生成された列

    非対応

    ハンドラーAPI

    非対応

    列のプロパティ

    最大列長 (longblob/longtext/json)

    32 MB

    GISデータ型

    X-Engineは、GEOMETRY、POINT、LINESTRING、POLYGON、MULTILINESTRING、MULTIPOLYGON、GEMOMETRYCOLLECTIONなどのGISデータ型をサポートしていません。

    インデックス

    ハッシュインデックス

    非対応

    空間インデックス

    サポートされていません。 X-Engineは、フルテキストインデックスの作成または使用をサポートしていません。

    トランザクション

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

    X-Engineは、次の分離レベルをサポートします。

    • コミット読み取り (RC)

    • 繰り返し読み取り (RR)

    トランザクションでサポートされる最大データ量

    32 MB

    Savepoint

    非対応

    XAトランザクション

    X-Engineは内部XAトランザクションをサポートします。

    ロック

    ロックの粒度

    • X-Engineは、テーブルレベルと行レベルのロックをサポートしています。

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

    スキップロック

    非対応

    ロックNowait

    非対応

    文字セット

    インデックスなしの列でサポートされる文字セット

    All

    インデックス付き列でサポートされる文字セット

    • 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)

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

    バイナリログ形式

    X-Engineは次の形式をサポートしています。

    • stmt

    • row

    • 混合

    説明

    デフォルトでは、バイナリログは行形式を使用します。 stmt形式と混合ログ形式は、特定の同時実行シナリオでデータセキュリティの問題を引き起こす可能性があります。

    説明

    既定では、上記の表に記載されていないX-Engineの機能は、InnoDBの機能と同じです。

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

    X-Engineは大規模なトランザクションをサポートしていません。 トランザクションで変更された行数が10,000以上の場合、X-Engineは中間コミット機能を有効にします。 このようにして、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);// 12,000 rows are inserted and a commit in middle operation is triggered. As a result, the first 10,000 rows of data are committed. 
      rollback;// You can roll back only the last 2,000 rows. 
      SELECT COUNT(*) FROM t1;// The committed 10,000 rows of data can be queried. 
      +----------+
      | COUNT(*) |
      +----------+
      |    10000 |
      +----------+
      1 row in set (0.00 sec)
    • トランザクション内の大量のデータを変更および削除するとします。 DELETE操作は、commit in middle機能のため、このトランザクションでコミットされた行を読み取ることができません。 そのため、新しくコミットされたデータは削除できません。

      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;// The deletion operation triggers a commit in middle operation, and the two rows of data inserted by the current transaction are not deleted. 
      commit;
      SELECT * FROM t1;
      +-------+-------+
      | c1    | c2    |
      +-------+-------+
      | 10001 | 10001 |
      | 10002 | 10002 |
      +-------+-------+
      2 rows in set (0.00 sec)
  • X-Engineを有効にすると、システムは自動的にクラスターを再起動します。 再起動中に、クラスターは30秒の一時的な切断に遭遇します。 この操作をオフピーク時に実行し、アプリケーションがクラスターに自動的に再接続できることを確認することをお勧めします。

  • X-Engineを有効にした後、次の項目に注意してください。

    • X-Engineに格納されているテーブルへの予期しないアクセスを回避するために、X-Engineを無効にすることはできません。

    • クラスターはGDNに参加できません。

手順

次のいずれかの方法を使用して、X-Engineを有効にできます。

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

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

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

    説明

    [X-Engine (Warm Data)] タブが表示されない場合は、クラスターが上記の前提条件を満たしているかどうかを確認します。 詳細については、「前提条件」をご参照ください。

  3. image

  4. [X-Engine比率の設定] ダイアログボックスで、実際のビジネスシナリオに基づいてX-Engineのデータとメモリ使用率を設定し、[今すぐ有効にする] をクリックします。

    次の表に、3つの典型的なシナリオの推奨比率を示します。 ビジネス要件に基づいて比率を設定できます。

    シナリオ

    InnoDB (%)

    X-エンジン (%)

    ホットデータにはInnoDBを、コールドデータにはX-Engineを使用します。 コールドデータは、めったにアクセスされないデータとして分類される。

    80

    20

    ホットデータにはInnoDBを、コールドデータにはX-Engineを使用します。 コールドデータはまだ更新されており、照会できます。

    50

    50

    少量のデータにはInnoDBを使用し、更新または照会が必要な大量のデータにはX-Engineを使用します。

    20

    80

    説明
    • X-Engineを有効にすると、X-Engine (ウォームデータ) タブで実際のビジネスシナリオに基づいて比率を調整できます。 このタブにアクセスするには、PolarDBコンソールにログインし、[設定と管理] > [データライフサイクル] を選択する必要があります。

    • X-Engine (%) の値の範囲は10% 〜90% です。X-Engineエンジンを使用してすべてのテーブルを保存し、InnoDBテーブルが存在しない場合は、X-engine (%) を90% に設定できます。

方法2: クラスター購入時にストレージエンジンとしてX-Engineを選択する

PolarDB for MySQLクラスターを購入すると、Storage EngineパラメーターをInnoDB & X-Engineに設定し、X-Engine (%) の値を調整できます。 詳細については、「クラスターの購入」の「ストレージエンジン」パラメーターをご参照ください。

説明

X-Engineを有効にすると、X-Engine (ウォームデータ) タブで実際のビジネスシナリオに基づいて比率を調整できます。 このタブにアクセスするには、PolarDBコンソールにログインし、[設定と管理] > [データライフサイクル] を選択する必要があります。

image

image