機能説明
データベース運用保守プロセス中に、DDL操作は、データ構造の変更のため、しばしばデータベース性能に影響を与える敏感な操作となります。特に、データ量が膨大なテーブルでDDLを実行する場合に、従来のCopy DDL操作は、長時間のロック待ちを引き起こす可能性があり、その結果、業務の正常な運営に影響を与えます。この問題を解決するために、TXSQLはParallel Copy DDLメカニズムを導入しました。従来のCopy DDLと比較して、Parallel Copy DDLはInnoDB層のParallel Readerフレームワークを活用し、元のテーブルのデータを並列に読み取り、新しく作成された一時テーブルにデータを挿入します。これにより、データ移行の効率が向上します。
サポートバージョン
カーネルバージョン TXSQL 5.7 2.1.13.001 以降。
カーネルバージョン TXSQL 8.0 3.1.15.001 以降。
適用シーン
Copy DDLはストレージエンジンの上位層、つまり実行層に位置します。エンジン層のインターフェース呼び出しには、クエリと挿入のみが含まれ、ファイルへの直接操作は関与しません。あらゆるDDL操作はこのような実行方法で抽象的に表現できるため、すべてのDDL操作はCopyアルゴリズムを使用して実行できます。
並列 Copy DDL は以下のシナリオに適用されます:
データ量が大きいテーブル構造の変更、例えば新しいカラムの追加やカラムタイプの変更など
業務への影響を低減するためにDDL操作を迅速に完了する必要があるシナリオです。
データベースの性能に対して厳しい要求があるため、DDL操作によるロック待機時間を削減する必要があります。
注意事項
以下のタイプのテーブルは、現在並列 Copy DDL に対応しておりません:
非InnoDBテーブル。
一時テーブル。
alter table order byのテーブルは行順序に要件があり、シングルスレッドで実行する必要があります。
auto incrementカラムが追加されたテーブル。
パーティションテーブル。
外部キー制約を含むテーブル。
multi value関数インデックスを含むテーブル。
使用説明
2つのセッションレベルのパラメータを追加します。
|
txsql_parallel_copy_ddl | session | bool | 0 | 0/1 | パラレル Copy DDL 機能を有効化するかどうか。 1に設定すると、パラレルCopyDDL機能を有効化することを示します。 0に設定すると、パラレルCopyDDL機能を無効化することを示します。 |
innodb_parallel_read_threads | session | int | 4 | 1 - 256 | Parallel Readで使用されるスレッド数。 |