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

PolarDB:IMCIのDDL実行速度とビルドの進行状況の表示

最終更新日:May 27, 2024

このトピックでは、大規模なテーブルまたは時間のかかるDDLステートメントが含まれる場合に、IMCIおよびInnoDBシナリオのインメモリ列インデックス (IMCI) のDDL実行速度とビルドの進行状況を表示する方法について説明します。

IMCIシナリオ

対応するテーブルで次の情報を表示できます。

  • INFORMATION_SCHEMA.IMCI_INDEXESテーブルで、IMCIの状態を表示します。

  • INFORMATION_SCHEMA.IMCI_INDEX_STATSテーブルで、IMCIの書き込み速度を確認します。

  • INFORMATION_SCHEMA.IMCI_ASYNC_DDL_STATSテーブルで、IMCIのDDL実行速度とビルドの進行状況を表示します。 IMCIデータを構築するためのタスクは、タスクが完了してから5〜10分以内にクリアされます。 IMCIの完全なステータス情報は、INFORMATION_SCHEMA.IMCI_INDEXESテーブルで確認できます。

    • PolarDB for MySQL Enterprise Editionクラスターのバージョンが8.0.1.34より8.0.1.x前または8.0.2.2.15より8.0.2.x前の場合、INFORMATION_SCHEMA.IMCI_ASYNC_DDL_STATSテーブルには次のスキーマがあります。

      CREATE TABLE: 一時テーブルの作成 'IMCI_ASYNC_DDL_STATS '(
        'SCHEMA_NAME' varchar(193) NOT NULL DEFAULT '', -- データベース名。
        'TABLE_NAME' varchar(193) NOT NULL DEFAULT '', -- テーブル名。
        'CREATE_AT' varchar(64) NOT NULL DEFAULT '', -- タスクが作成されたときのタイムスタンプ。
        'STARTED_AT' varchar(64) NOT NULL DEFAULT '', -- タスクが開始されたときのタイムスタンプ。
        'FINISHED_AT' varchar(64) NOT NULL DEAULT '', -- タスクが終了したときのタイムスタンプ。
        'STATUS' varchar(128) NOT NULL DEFAULT '', -- ステータス。
        'APPROXIMATE_ROWS 'bigint (8) NOT NULL DEFAULT '0', -ベースラインデータの推定行数。
        'SCANNED_ROWS 'bigint (8) NOT NULL DEAULT '0', -- スキャンされた行の数。 実際の数は、推定数よりも大きくてもよい。
        'AVG_SPEED' int(4) NOT NULL DEFAULT '0', -- タスクの平均速度。 単位: 1秒あたりの行数。
        'SPEED_LAST_SECOND 'int(4) NOT NULL DEFAULT '0', − 最後の秒の速度。 単位: 1秒あたりの行数。
        'ESTIMATE_SECOND' bigint(8) NOT NULL DEFAULT '0' − 推定残り時間。 単位は秒です。
      ) エンジン=メモリデフォルト料金=utf8 
    • PolarDB for MySQL Enterprise Editionクラスターのバージョンが8.0.1.35より8.0.1.x前または8.0.2.2.16より8.0.2.x前の場合、INFORMATION_SCHEMA.IMCI_ASYNC_DDL_STATSテーブルのスキーマは次のとおりです。

      テーブルの作成: 一時テーブルの作成 'IMCI_ASYNC_DDL_STATS '(
        'SCHEMA_NAME' varchar(193) NOT NULL DEFAULT '', -- データベース名。
        'TABLE_NAME' varchar(193) NOT NULL DEFAULT '', -- テーブル名。
        'CREATE_AT' varchar(64) NOT NULL DEFAULT '', -- タスクが作成されたときのタイムスタンプ。
        'STARTED_AT' varchar(64) NOT NULL DEFAULT '', -- タスクが開始されたときのタイムスタンプ。
        'FINISHED_AT' varchar(64) NOT NULL DEAULT '', -- タスクが終了したときのタイムスタンプ。
        'STATUS' varchar(128) NOT NULL DEFAULT '', -- ステータス。
        'APPROXIMATE_ROWS 'bigint (8) NOT NULL DEFAULT '0', -ベースラインデータの推定行数。
        'SCANNED_ROWS' varchar(128) NOT NULL DEAULT ''、-スキャンされた行の数と割合。 実際の数は、推定数よりも大きくてもよい。
        'SCAN_SECOND' bigint(8) NOT NULL DEFAULT '0', -- スキャン動作が実行された秒数。
        'SORT_ROUNDS' bigint(8) NOT NULL DEFAULT '0', -- ソートラウンドの数。 この列は、ソートキーを含むシナリオにのみ適用されます。
        'SORT_SECOND 'bigint (8) NOT NULL DEFAULT '0', -- ソート操作が実行された秒数。 この列は、ソートキーを含むシナリオにのみ適用されます。
        'BUILD_ROWS' varchar(128) NOT NULL DEFAULT ''、-ソート後の書き込まれた行の数と割合。 この列は、ソートキーを含むシナリオにのみ適用されます。
        'BUILD_SECOND 'bigint (8) NOT NULL DEFAULT '0', -- ソート後にデータを書き込むのに必要な時間。 この列は、ソートキーを含むシナリオにのみ適用されます。
        'AVG_SPEED' int(4) NOT NULL DEFAULT '0', -- タスクの平均速度。 単位: 1秒あたりの行数。
        'SPEED_LAST_SECOND 'int(4) NOT NULL DEFAULT '0', − 最後の秒の速度。 単位: 1秒あたりの行数。 この列は、スキャンおよびソートフェーズに適用できます。
        'ESTIMATE_SECOND' bigint(8) NOT NULL DEFAULT '0' − 推定残り時間。 単位は秒です。 この列は、スキャンおよびソートフェーズに適用できます。
      ) エンジン=メモリデフォルト料金=utf8 

      SPEED_LAST_SECONDの値は、システムリソースと同時タスクによって変動する場合があります。 ESTIMATE_SECONDの値は、残りの行数を最後の1秒の速度で割った値であるため、変動する場合があります。 書き込み抑制がトリガされる場合、最後の1秒の速度は0であり得る。 この場合、ESTIMATE_SECONDの値は9223372036854775807です。

InnoDBシナリオ

DDLステートメントを使用してIMCIを追加したり、インデックスを作成したりすると、APノードはredoログを再生し、IMCIにデータを書き込みます。 APノードのパフォーマンスは、主にログ再生速度とプライマリノードのDDL実行速度に依存します。 PolarDBコンソールでパフォーマンスモニタリング情報を参照してログ再生速度を評価し、InnoDBのDDLモニタリング情報を参照してプライマリノードでのDDL実行速度を評価できます。

InnoDBのDDLモニタリング情報は、パフォーマンススキーマモジュールによって異なります。 events_stages_currentテーブルで実行されているDDLステートメントと、events_stages_historyテーブルで実行されているDDLステートメントを照会できます。 主な指標には、WORK_COMPLETEDWORK_ESTIMATEDがあります。 どちらもページ単位で測定されます。 詳細については、「MySQLドキュメント」をご参照ください。