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

PolarDB:使用状況ノート

最終更新日:Jun 05, 2024

PolarDB for MySQLはX-Engineストレージエンジンをサポートしています。 X-Engineは高い圧縮率を提供し、高い計算パフォーマンスを必要としないが、DingTalkメッセージなどの大量のデータをアーカイブする必要があるビジネスに適しています。 PolarDB for MySQLクラスターでは、X-EngineとInnoDBを使用できます。 ストレージコストを削減するために、X-Engineの高圧縮機能を利用してアーカイブデータを保存できます。 X-Engineは手動で有効にできます。 詳細については、「X-Engineの有効化」をご参照ください。 このトピックでは、PolarDBX-Engineを使用する方法について説明します。

制限事項

  • 機能の制限

    次の表に、X-Engineの機能制限を示します。

    カテゴリ

    機能

    説明

    SQLの特徴

    外部キー

    非対応

    一時テーブル

    非対応

    生成された列

    非対応

    ハンドラーAPI

    非対応

    列のプロパティ

    最大列サイズ

    (LONGBLOB/LONGTEXT/JSON)

    32 MB

    GISデータ型

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

    インデックス作成

    Hash index

    非対応

    空間インデックス

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

    トランザクション

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

    次の分離レベルをサポートします。

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

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

    トランザクションでサポートされるデータの最大アカウント

    32 MB

    Savepoint

    非対応

    eXtended Architecture (XA) トランザクション

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

    ロック

    ロックの粒度

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

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

    スキップロック

    非対応

    ロック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)

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

    バイナリログ形式

    次の形式をサポートします。

    • stmt

    • row

    • 混合

    説明

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

    説明

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

  • 大規模な取引の制限

    X-Engineは大規模なトランザクションをサポートしていません。 トランザクションで変更された行数が10,000以上の場合、X-Engineは中間コミット機能を有効にします。 このようにして、X-Engineは内部でトランザクションをコミットし、サブトランザクションを開始してトランザクションを実行し続けることができます。 ただし、commit in middleの機能では、トランザクションのアトミック性が保証されない場合があります。 中央でコミット機能を使用する場合は、次の項目に注意してください。

    • 大量のデータを挿入するトランザクションを開始するとします。 挿入中、commit in middleの機能により、データの一部がコミットされます。 挿入されたデータは、他の要求によって問い合わせることができる。

    • 大量のデータを変更するトランザクションを開始するとします。 commit in middle機能でコミットされたデータはロールバックできません。

      ドロップテーブルt1;
      CREATE TABLE t1(c1 intプライマリキー、c2 int)ENGINE=xengine;
      開始;
      call insert_data(12000);// 12,000行が挿入され、中間コミット操作がトリガーされます。 その結果、データの最初の10,000行がコミットされる。 
      ロールバック; // 最後の2,000行のみロールバックできます。 
      SELECT COUNT(*) FROM t1;// コミットされた10,000行のデータを照会できます。 
      + ---------
      | カウント (*) |
      + ---------
      | 10000 |
      + ---------
      1行セット (0.00秒) 
    • トランザクション内の大量のデータを変更および削除するとします。 DELETE操作は、commit in middle機能のため、このトランザクションでコミットされた行を読み取ることができません。 そのため、新しくコミットされたデータは削除できません。

      ドロップテーブルt1;
      CREATE TABLE t1(c1 intプライマリキー、c2 int)ENGINE=xengine;
      insert_data(10000) を呼び出す。開始;
      t1値 (10001,10001) 、(10002,10002) に挿入します。DELETE FROM t1 WHERE c1 >= 0;// 削除は途中でコミット操作をトリガーし、現在のトランザクションによって挿入された2行のデータは削除されません。 
      コミット;
      SELECT * からt1;
      + ------ ------- +
      | c1 | c2 |
      + ------ ------- +
      | 10001 | 10001 |
      | 10002 | 10002 |
      + ------ ------- +
      セットの2列 (0.00秒) 

テーブルのストレージエンジンをInnoDBからX-engineに変更

  1. データ管理 (DMS) 、クライアント、またはCLIを使用して管理するデータベースに接続します。 詳細については、「クラスターへの接続」をご参照ください。

  2. 次のステートメントを実行して、テーブルのストレージエンジンをInnoDBからX-engineに変更します。

    ALTER TABLE <データベース名> 。<テーブル名> ENGINE xengine;
    説明

    ALTER文を使用してテーブルのストレージエンジンをInnoDBからX-engineに変更すると、テーブルへのDMLおよびDDLの書き込み操作がブロックされます。

X-Engineを使用したテーブルの作成

X-EngineとInnoDBを使用するクラスターでX-Engineを使用してテーブルを作成するには、テーブルの作成時にストレージエンジンとしてX-Engineを指定します。 例:

CREATE TABLE t1(c1 intプライマリキー、c2 int) ENGINE=xengine;

パラメーター

説明
  • ビジネス要件に基づいて、変更を許可するパラメーターを変更できます。 詳細については、「クラスターとノードパラメーターの設定」をご参照ください。

  • MySQL設定ファイルの互換性プレフィックスloose_ は、PolarDBコンソールのすべてのパラメーターに追加されます。

カテゴリ

パラメーター

説明

変更を許可

変更後に再起動

パフォーマンス

xengine_batch_group_max_group_サイズ

トランザクションパイプライン内のグループの最大数。

任意

任意

xengine_batch_group_max_leader_wait_time_us

トランザクションパイプラインの最大待機時間。

任意

任意

xengine_batch_group_slot_array_size

トランザクションパイプラインの最大バッチサイズ。

任意

任意

xengine_parallel_read_スレッド

並列読み取りスレッドの数。

任意

xengine_parallel_wal_recovery

パラレルWrite-Ahead Logging (WAL) リカバリを有効にするかどうかを指定します。

任意

任意

メモリ

xengine_block_cache_サイズ

読み取りブロックキャッシュのサイズ。

任意

任意

xengine_row_cache_サイズ

行キャッシュのサイズ。

任意

任意

xengine_write_buffer_サイズ

メモリテーブルの最大サイズ。

任意

任意

xengine_block_size

ディスク上のデータブロックのサイズ。

任意

任意

xengine_db_write_buffer_サイズ

すべてのサブテーブルのアクティブなメモリテーブルの最大サイズ。

任意

任意

xengine_db_total_write_buffer_サイズ

すべてのサブテーブルのアクティブなメモリテーブルと不変のメモリテーブルの最大サイズ。

任意

任意

xengine_scan_add_blocks_limit

各範囲ベースのスキャン要求中にブロックキャッシュに追加できるブロックの数。

任意

圧縮

xengine_flush_delete_percent_trigger

メモリテーブルのレコード数がこのパラメーターの値より大きい場合、xengine_flush_delete_record_triggerパラメーターがメモリテーブルに対して有効になります。

任意

任意

ロック

xengine_max_row_locks

1つのSQLリクエストでロックできる行の最大数。

任意

任意

xengine_lock_wait_timeout

ロック待機のタイムアウト期間。

任意