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

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

最終更新日:May 28, 2024

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のクラスター。

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

注意事項

  • 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