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

PolarDB:DDLマルチウェイのマージとソート

最終更新日:Feb 18, 2025

DDL多方向マージおよびソート機能がPolarDBに追加されました。 DDLステートメントを実行して大きなテーブルにインデックスを作成するには時間がかかります。 DDLマージおよびソート機能を使用して、インデックスのソート時間を短縮できます。

前提条件

PolarDBクラスターは、次のいずれかの要件を満たす必要があります。

  • リビジョンバージョンが8.0.2.2.5以降のPolarDB for MySQL 8.0.2のクラスター。

  • リビジョンバージョンが8.0.1.1.28以降のPolarDB for MySQL 8.0.1のクラスター。

  • リビジョンバージョンが5.7.1.0.23以降のPolarDB for MySQL 5.7のクラスター。

クラスターバージョンを確認する方法の詳細については、「エンジンバージョン5.6、5.7、8.0」をご参照ください。

注意事項

  • DDLマルチウェイマージおよびソート機能は、フルテキストインデックスおよび空間インデックスではサポートされていません。

  • DDLマルチウェイマージおよびソート機能は、クラスターのメモリ使用量をわずかに増加させます。 マージとソートのためにN個のウェイをアクティブにすると、クラスターの占有メモリサイズは (N + 1) × innodb_sort_buffer_sizeバイトになります。

Usage

innodb_polar_parallel_merge_waysパラメーターを設定することで、マージとソートの方法の数を指定できます。

パラメーター

レベル

説明

innodb_polar_parallel_merge_ways

セッション

マージとソートの方法の数。 有効な値: 2 ~ 16。 デフォルト値:2 デフォルトでは、双方向のマージとソートが使用されます。 2より大きい値を指定した場合、複数方向のマージおよびソート機能が有効になります。

性能テスト

  • テスト環境

    • 8 CPUコアと32 GBメモリを持つPolarDB for MySQL 8.0のクラスター。

    • クラスターのストレージ容量は50テラバイトです。

  • Schema

    次のステートメントを実行して、table_1という名前のテーブルを作成します。

    CREATE TABLE 'table_1 '(
    'id' int (11) NOT NULL AUTO_INCREMENT、'seller_id 'bigint(20) DEFAULT NULL、'seller_name' varchar(100) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL、'gmt_create' varchar(30) DEFAULT NULL、'update_time' varchar(30) DEFAULT NULL、主要なキー ('id')
    ) エンジン=InnoDB; 
  • Data

    次の文を実行してテストデータを生成します。

    区切り文字 | |
    CREATE PROCEDURE populate_0 (INNUM INT)
    開始
    DECLARE sid INT;
    DECLAREサフィックス_名INT;
    DECLARE i INT;
    SET sid=1000;
    SET suffix_name=10;
    セットi=1;
    トランザクションを開始します。i <= NUMである間
    やる
    INSERT INTO table_1(seller_id,seller_name,gmt_create,update_time) VALUES(sid,CONCAT ('selername', suffix_name),NOW(),NOW());
    SET suffix_name=suffix_name + 1;
    SET sid=sid + 1;
    セットi=i + 1;
    END WHILE;
    COMMIT;
    エンド | |
    区切り文字;
    CALL populate_0(100000000) ; 
  • テスト方法とテスト結果

    テーブルにデータが入力されたら、マージとソートの2つの方法と8つの方法を指定します。 alter table table_1 add index name_index (seller_name); ステートメントを実行し、2つのケースでステートメントの実行効率を比較します。

    マージとソートの方法

    消費時間 (秒)

    8ウェイのマージとソート

    353

    双方向のマージとソート

    485