PolarDBでは、Polarパフォーマンススキーマ機能を使用して、DDLステートメントとメタデータロックの実行ステータスを監視できます。 Polarパフォーマンススキーマ機能は、軽量なステータス監視機能です。 MySQLが提供するパフォーマンススキーマ機能と比較して、この機能は使用するメモリリソースが少なく、パフォーマンスのオーバーヘッドが低くなります。 このトピックでは、Polarパフォーマンススキーマ機能を使用して、DDLステートメントとメタデータロックの実行ステータスを表示する方法について説明します。
前提条件
クラスターはPolarDB for MySQL 8.0.1で、リビジョンバージョンは8.0.1.1.21以降である必要があります。 バージョンの確認方法の詳細については、「エンジンバージョンの照会」をご参照ください。
注意事項
DDL文は、常にクラスターのプライマリノードで実行されます。 したがって、プライマリノードでのDDL文の実行ステータスを照会する必要があります。
プライマリエンドポイントを使用してクラスターに接続している場合は、プライマリノードでのDDLステートメントの実行ステータスを直接照会できます。 プライマリエンドポイントのクエリ方法については、「エンドポイントとポート番号の表示」をご参照ください。
クラスターエンドポイントを使用してクラスターに接続している場合は、SQL文のヒントを使用して、プライマリノードでのDDL文の実行ステータスを照会できます。 詳細については、「ヒント」をご参照ください。
パフォーマンススキーマ機能を有効にすると、Polarパフォーマンススキーマ機能は自動的に無効になります。
手順
このトピックで紹介する方法は、InnoDBストレージエンジンを使用するテーブルにのみ適しています。
Polarパフォーマンススキーマ機能を有効にします。
コンソールでクラスターのloose_polar_performance_schemaパラメーターを
ON
に設定する必要があります。 この機能は、クラスターを再起動すると有効になります。 詳細については、「クラスターとノードパラメーターの設定」をご参照ください。次の表に、Polarパフォーマンススキーマ機能のパラメーターを示します。
パラメーター
説明
loose_polar_performance_schema
Polarパフォーマンススキーマ機能を有効にするかどうかを指定します。 有効な値:
ON: システムはPolarパフォーマンススキーマ機能を有効にします。
OFF: システムはPolarパフォーマンススキーマ機能を無効にします。
performance_schema_max_thread_インスタンス
Polarパフォーマンススキーマ機能で監視に使用されるスレッドの最大数。 有効値: -1 ~ 65536 値-1は、ビジネスの変化に適応するためにスレッド数が自動的に調整されることを示します。
説明このパラメータは調整されています。 このパラメーターは変更しないことを推奨します。
performance_schema_max_metadata_locks
Polarパフォーマンススキーマ機能で監視に使用されるメタデータロックの最大数。 有効値: -1 ~ 1048576 値が-1の場合、メタデータロックの数がビジネスの変化に適応するように自動的に調整されることを示します。
説明このパラメータは調整されています。 このパラメーターは変更しないことを推奨します。
クラスターの起動後、次のステートメントを実行して、Polarパフォーマンススキーマ機能を有効にするかどうかを指定できます。
「polar_performance_schema」のようなバリエーションを表示します。
同様の結果が返されます。
+ -------------------------- + ------- | Variable_name | 値 | + -------------------------- + ------- | polar_performance_schema | ON | + -------------------------- + ------- 1行セット (0.00秒)
DDLステートメントとメタデータロックの実行ステータスを表示します。
DDLステートメントが実行されるプロセスで、次のステートメントを実行して
performance_schema.events_stages_current
テーブルを表示できます。 次に、DDLステートメントのステータスを取得できます。SELECT THREAD_ID、EVENT_ID、EVENT_NAME、WORK_COMPLETED、WORK_ESTIMATED、(WORK_COMPLETED/WORK_ESTIMATED)* 100としてPROGRESS FROM performance_schema.events_stages_current;
同様の結果が返されます。
+ ---------- ------------ ------------------------------------------------------ + ---------------- + ---------------- + ---------------- + ---------------- --------- | THREAD_ID | EVENT_ID | EVENT_NAME | WORK_COMPLETED | WORK_ESTIMATED | PROGRESS | ----------- ---------- ------------------------------------------------------ ---------------- ---------------- ---------- + | 3057989 | 13 | stage/innodb/alter table (PKと内部ソートを読む) | 56634 | 330135 | 17.1548 | ----------- ---------- ------------------------------------------------------ ---------------- ---------------- ---------- + 1行セット (0.00秒)
performance_schema.threads
およびinformation_schema.PROCESSLIST
テーブルを使用し、次のステートメントを実行して、現在のイベントに対応するSQLステートメントを表示できます。
CEID. PROCEID.SELECT. THREAD_ID, esc.EVENT_NAME, esc.WORK_COMPLETED, esc.WORK_ESTIMATED, pl.INFO FROM performance_schema.events_stages_current esc LEFT JOFT IN performance_schema.s.
同様の結果が返されます。
+ ---------- ------------------------------------------------------ + ---------------- + ---------------- + ----------------------------------------------------------------------------------------- + | THREAD_ID | EVENT_NAME | WORK_COMPLETED | WORK_ESTIMATED | 情報 | + ---------- + ------------------------------------------------------ + ---------------- + ---------------- + ----------------------------------------------------------------------------------------- + | 3057989 | stage/innodb/alter table (read PK and internal sort) | 77034 | 330519 | ALTER TABLE test.test ALGORITHM=INPLACE, ADD testA VARCHAR (20) NOT NULL DEFAULT 'testA' | + ---------- + ------------------------------------------------------ + ---------------- + ---------------- + ----------------------------------------------------------------------------------------- + 1行セット (0.00秒)
次のステートメントを実行して、
performance_schema.metadata_locks
テーブルを表示できます。 次に、現在のクラスターのメタデータロックステータスを取得できます。SELECT * FROM performance_schema.metadata_locks;
同様の結果が返されます。
----------- -------------------- ------------------ ------------ ----------------------- --------------------- ------------------------------------------------------ ------------------------ ----------------- ----------------- | OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | COLUMN_NAME | OBJECT_INSTANCE_BEGIN | LOCK_TYPE | LOCK_DURATION | LOCK_STATUS | SOURCE | OWNER_THREAD_ID | OWNER_EVENT_ID | ------------ -------------------- ------------------ ------------ ----------------------- --------------------- -------------------------------------------------- ------------------------ ----------------- ----------------- + ---------------- | グローバル | NULL | NULL | NULL | 139949462878336 | INTENTION_EXCLUSIVE | ステートメント | GRANTED | sql_base.cc:3103 | 3055785 | 1 | | TABLE | test | test | NULL | 139931318980224 | SHARED_WRITE | トランザクション | GRANTED | sql_parse.cc:6479 | 3055785 | 1 | | COMMIT | NULL | NULL | 139931318980480 | INTENTION_EXCLUSIVE | EXPLICIT | GRANTED | handler.cc:1669 | 3055785 | 1 | | TABLE | performance_schema | metadata_locks | NULL | 139934227366144 | SHARED_READ | TRANSACTION | GRANTED | sql_parse.cc:6479 | 3057612 | 1 | | グローバル | NULL | NULL | NULL | 139934216849664 | INTENTION_EXCLUSIVE | ステートメント | GRANTED | sql_base.cc:5519 | 3057989 | 13 | | スキーマ | テスト | NULL | NULL | 139934216849408 | INTENTION_EXCLUSIVE | トランザクション | GRANTED | sql_base.cc:5506 | 3057989 | 13 | | TABLE | test | test | NULL | 139934216848640 | SHARED_UPGRADABLE | トランザクション | GRANTED | sql_parse.cc:6479 | 3057989 | 13 | | バックアップロック | NULL | NULL | NULL | 139934216849280 | INTENTION_EXCLUSIVE | トランザクション | GRANTED | sql_base.cc:5526 | 3057989 | 13 | | TABLESPACE | NULL | test/test | NULL | 139934216848384 | INTENTION_EXCLUSIVE | TRANSACTION | GRANTED | lock.cc:815 | 3057989 | 13 | | テーブル | テスト | #sql-17d9_2ea89a | NULL | 139934216848896 | 排他的 | ステートメント | GRANTED | sql_table.cc:15054 | 3057989 | 13 | | GLOBAL | NULL | NULL | NULL | 139934216850176 | INTENTION_EXCLUSIVE | TRANSACTION | GRANTED | dictionary_impl.cc:416 | 3057989 | 13 | | TABLESPACE | NULL | test/test | NULL | 139934216849920 | EXCLUSIVE | トランザクション | GRANTED | dictionary_impl.cc:397 | 3057989 | 13 | ------------ -------------------- ------------------ ------------ ----------------------- --------------------- -------------------------------------------------- ------------------------ ----------------- ----------------- + ---------------- セットの12行 (0.00秒)
OWNER_THREAD_ID
フィールドを使用し、次のステートメントを実行して、performance_schema.threads
テーブルでメタデータロックを保持するスレッドに関する情報を表示できます。select * from performance_schema.threads where THREAD_ID = "performance_schema.metadata_locksテーブルのOWNER_THREAD_ID";
ベストプラクティス
テーブルメタデータロック待ち
実際には、DDLブロッキングの一般的な原因は、メタデータロックを取得できないことです。 この場合、DDL文は
テーブルメタデータロック待ち
状態になります。metadata_lock
テーブルを使用して、DDLブロッキングの原因をすばやく検出できます。例:
SHOW PROCESSLIST
ステートメントを実行して、ALTER TABLE t1 ADD column d varchar(10),algorithm = inplace
ステートメントの実行ステータスを照会します。 同様の結果が返されます。/* force_node='pi-bp10k7631d6k3 **** '*/ show processlist; + -------- ----------------- + ----------------------- + -------------------- + ---------------- + ---------------- + -------- | Id | ユーザー | ホスト | db | コマンド | 時間 | 状態 | 情報 | + -------- ----------------- + ----------------------- + -------------------- + ---------------- + ---------------- + -------- | 98 | event_scheduler | localhost | NULL | デーモン | 1306586 | 空のキューで待機中 | NULL | | 109 | レプリケーター | 11.111.XX.XX:62549 | NULL | Polarログダンプ | 1 | innodbからのログの読み取り | NULL | | 113 | レプリケーター | 11.111.XX.XX:62560 | NULL | Polar Log Ack | 1 | クライアントからの受信 | NULL | | 133 | レプリケーター | 10.13.64.70:42712 | NULL | Polarログダンプ | 1 | innodbからのログの読み取り | NULL | | 138 | レプリケーター | 10.13.64.70:42723 | NULL | Polar Log Ack | 0 | クライアントからの受信 | NULL | | 369 | オーロラ | 10.111.211.209:33334 | NULL | スリープ | 0 | | NULL | | 370 | オーロラ | 10.111.211.209:33336 | NULL | RDSプッシュLSN | 1306413 | 開始 | NULL | | 372 | オーロラ | 10.111.204.224:37010 | NULL | スリープ | 0 | | NULL | | 373 | オーロラ | 10.111.204.224:37019 | NULL | RDSプッシュLSN | 1306413 | 開始 | NULL | | 3064011 | ルート | 127.0.0.1:59703 | NULL | スリープ | 716 | | NULL | | 3064013 | ルート | 127.0.0.1:59710 | NULL | スリープ | 25 | | NULL | | 3064015 | ルート | 127.0.0.1:59713 | NULL | スリープ | 55 | | NULL | | 3064018 | ルート | 127.0.0.1:59716 | NULL | スリープ | 1 | | NULL | | 3067041 | zyg_root | 172.17.XX.XX:48594 | テスト | クエリ | 22 | テーブルメタデータロック待ち | alter table t1 add column d varchar(10),algorithm = inplace | | 3067443 | zyg_root | 172.17.XX.XX:48602 | テスト | スリープ | 27 | | NULL | | 3069716 | オーロラ | 100.104.XX.XX:33017 | information_schema | スリープ | 30 | | NULL | | 3069859 | オーロラ | 100.104.XX.XX:41872 | information_schema | スリープ | 30 | | NULL | | 3069925 | オーロラ | 10.111.204.224:20916 | NULL | スリープ | 2 | | NULL | | 3069932 | オーロラ | 10.111.211.209:51263 | NULL | スリープ | 2 | | NULL | | 270526156 | zyg_root | 172.17.28.253:46272 | test | クエリ | 0 | 開始 | /* force_node='pi-bp10k7631d6k3 **** '*/ show processlist | + -------- ----------------- + ----------------------- + -------------------- + ---------------- + ---------------- + -------- セットの20行 (0.00秒)
DDL文が
テーブルメタデータロック待ち
状態です。performance_schema.metadata_locks
テーブルをクエリすることで、DDLステートメントのメタデータロックステータスを表示できます。 同様の結果が返されます。/* force_node='pi-bp10k7631d6k3 **** '*/ select * from performance_schema.metadata_locks; ------------ -------------------- ------------------ ------------ ----------------------- --------------------- -------------------------------------------------- -------------------- ----------------- ----------------- + ---------------- | OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | COLUMN_NAME | OBJECT_INSTANCE_BEGIN | LOCK_TYPE | LOCK_DURATION | LOCK_STATUS | SOURCE | OWNER_THREAD_ID | OWNER_EVENT_ID | ------------ -------------------- ------------------ ------------ ----------------------- --------------------- -------------------------------------------------- -------------------- ----------------- ----------------- + ---------------- | TABLE | performance_schema | metadata_locks | NULL | 139742994307712 | SHARED_READ | TRANSACTION | GRANTED | sql_parse.cc:7688 | 3810041 | 1 | | TABLE | test | t1 | NULL | 139742992122240 | SHARED_READ | TRANSACTION | GRANTED | sql_parse.cc:7688 | 3810574 | 1 | | グローバル | NULL | NULL | NULL | 139742992172544 | INTENTION_EXCLUSIVE | ステートメント | GRANTED | sql_base.cc:5637 | 3810086 | 3 | | スキーマ | テスト | NULL | NULL | 139742993150592 | INTENTION_EXCLUSIVE | トランザクション | GRANTED | sql_base.cc:5624 | 3810086 | 3 | | TABLE | test | t1 | NULL | 139742993150848 | SHARED_UPGRADABLE | トランザクション | GRANTED | sql_parse.cc:7688 | 3810086 | 3 | | バックアップロック | NULL | NULL | NULL | 139742993844096 | INTENTION_EXCLUSIVE | トランザクション | GRANTED | sql_base.cc:5644 | 3810086 | 3 | | TABLESPACE | NULL | test/t1 | NULL | 139742991805696 | INTENTION_EXCLUSIVE | トランザクション | GRANTED | lock.cc:815 | 3810086 | 3 | | テーブル | テスト | #sql-1b34_2ecca1 | NULL | 139742992091136 | 排他的 | ステートメント | GRANTED | sql_table.cc:15532 | 3810086 | 3 | | TABLE | test | t1 | NULL | 140266021234688 | 排他的 | トランザクション | 保留 | mdl.cc:4124 | 3810086 | 3 | ------------ -------------------- ------------------ ------------ ----------------------- --------------------- -------------------------------------------------- -------------------- ----------------- ----------------- + ---------------- セットの9行 (0.00秒)
3810574
スレッドは、test/t1
テーブルのSHARED_READ
ロックを保持します。 その結果、3810086
スレッドはEXCLUSIVE
ロックを取得できません。performance_schema.threads
テーブルを使用して、スレッドの詳細を取得できます。 同様の結果が返されます。/* force_node='pi-bp10k7631d6k3 **** '*/ select * from performance_schema.threadsここでTHREAD_ID in (3810086,3810574)\G *************************** 1。 行 *************************** THREAD_ID: 3810086 名前: スレッド /sql/one_connection タイプ: FOREGROUND PROCESSLIST_ID: 3067041 PROCESSLIST_USER: zyg_root PROCESSLIST_HOST: 172.17.28.253 PROCESSLIST_DB: テスト PROCESSLIST_COMMAND: クエリ PROCESSLIST_TIME: 41 PROCESSLIST_STATE: テーブルメタデータロック待ち PROCESSLIST_INFO: テーブルt1を変更して列d varchar(10) を追加、algorithm = inplace PARENT_THREAD_ID: NULL ROLE: NULL 指示: はい 歴史: はい CONNECTION_TYPE: TCP/IP THREAD_OS_ID: 64852 RESOURCE_GROUP: NULL *************************** 2. 行 *************************** THREAD_ID: 3810574 名前: スレッド /sql/one_connection タイプ: FOREGROUND PROCESSLIST_ID: 3067443 PROCESSLIST_USER: zyg_root PROCESSLIST_HOST: 172.17.28.253 PROCESSLIST_DB: テスト PROCESSLIST_COMMAND: 睡眠 PROCESSLIST_TIME: 46 PROCESSLIST_STATE: NULL PROCESSLIST_INFO: NULL PARENT_THREAD_ID: NULL ROLE: NULL 指示: はい 歴史: はい CONNECTION_TYPE: TCP/IP THREAD_OS_ID: 65845 RESOURCE_GROUP: NULL セットの2列 (0.01秒)
3810086
スレッドはブロックされたDDLステートメント用で、3810574
スレッドは低速クエリ用です。3810574
スレッドはロックを保持します。 したがって、ALTER TABLE t1 ADD column d varchar(10),algorithm = inplace
ステートメントはメタデータロックを取得できず、ブロックされます。 実際のビジネス要件に応じて、トランザクションがコミットされるのを待つか、KILL processlist_id
ステートメントを実行してトランザクションを終了してから、ALTER TABLE t1 ADD column d varchar(10),algorithm = inplace
ステートメントを再度実行できます。レプリカとの同期を待つ
PolarDBはクラスターアーキテクチャを使用します。 したがって、プライマリノードでDDLステートメントを実行するときは、すべての読み取り専用ノードが対応するメタデータロックを解放するのを待つ必要があります。
SHOW PROCESSLIST
ステートメントを実行したときに、DDLステートメントがレプリカとの同期待ち
状態になっている場合、読み取り専用ノードはテーブルのメタデータロックを保持します。 このセクションで説明するように、読み取り専用ノードのメタデータロックを保持しているスレッドをすばやく照会できます。例:
クラスターのプライマリノードで
SHOW PROCESSLIST
ステートメントを実行して、ALTER TABLE t1 ADD column d varchar(10),algorithm = inplace
ステートメントの実行ステータスを照会します。 同様の結果が返されます。/* force_node='pi-bp10k7631d6k3 **** '*/ show processlist; + -------- ----------------- + ----------------------- + -------------------- + ---------------- + ---------------- + -------- | Id | ユーザー | ホスト | db | コマンド | 時間 | 状態 | 情報 | + -------- ----------------- + ----------------------- + -------------------- + ---------------- + ---------------- + -------- | 98 | event_scheduler | localhost | NULL | デーモン | 1307512 | 空のキューで待機中 | NULL | | 109 | レプリケーター | 11.111.XX.XX:62549 | NULL | Polarログダンプ | 1 | innodbからのログの読み取り | NULL | | 113 | レプリケーター | 11.111.XX.XX:62560 | NULL | Polar Log Ack | 1 | クライアントからの受信 | NULL | | 133 | レプリケーター | 10.13.64.70:42712 | NULL | Polarログダンプ | 1 | innodbからのログの読み取り | NULL | | 138 | レプリケーター | 10.13.64.70:42723 | NULL | Polar Log Ack | 0 | クライアントからの受信 | NULL | | 369 | オーロラ | 10.111.211.209:33334 | NULL | スリープ | 0 | | NULL | | 370 | オーロラ | 10.111.211.209:33336 | NULL | RDSプッシュLSN | 1307339 | 開始 | NULL | | 372 | オーロラ | 10.111.204.224:37010 | NULL | スリープ | 0 | | NULL | | 373 | オーロラ | 10.111.204.224:37019 | NULL | RDSプッシュLSN | 1307339 | 開始 | NULL | | 3064011 | ルート | 127.0.0.1:59703 | NULL | スリープ | 742 | | NULL | | 3064013 | ルート | 127.0.0.1:59710 | NULL | スリープ | 21 | NULL | | 3064015 | ルート | 127.0.0.1:59713 | NULL | スリープ | 21 | NULL | | 3064018 | ルート | 127.0.0.1:59716 | NULL | スリープ | 1 | | NULL | | 3067041 | zyg_root | 172.17.28.253:48594 | テスト | クエリ | 6 | レプリカとの同期を待つ | alter table t1 add column d varchar(10) 、algorithm = inplace | | 3067443 | zyg_root | 172.17.28.253:48602 | テスト | スリープ | 751 | | NULL | | 3071863 | オーロラ | 100.104.XX.XX:32615 | information_schema | スリープ | 56 | | NULL | | 3072000 | オーロラ | 100.104.XX.XX:41585 | information_schema | スリープ | 56 | | NULL | | 3072126 | オーロラ | 10.111.204.224:47050 | NULL | スリープ | 2 | | NULL | | 3072127 | オーロラ | 10.111.211.209:41026 | NULL | スリープ | 1 | | NULL | | 270526156 | zyg_root | 172.17.28.253:46272 | テスト | スリープ | 362 | | NULL | | 270530026 | zyg_root | 172.17.28.253:46390 | test | クエリ | 0 | 開始 | /* force_node='pi-bp10k7631d6k3 **** '*/ show processlist | + -------- ----------------- + ----------------------- + -------------------- + ---------------- + ---------------- + -------- セットの21行 (0.00秒)
DDLステートメントの状態は、
レプリカとの同期待ち
です。performance_schema.metadata_locks
テーブルとヒントを使用して、指定された読み取り専用ノードのメタデータロックのステータスを照会できます。 同様の結果が返されます。/* force_node='pi-bp186ko4o21wl **** '*/ select * from performance_schema.metadata_locks; ------------ -------------------- ---------------- ------------ ----------------------- --------------------- -------------------------------------------------- -------------------- ----------------- ----------------- + ---------------- | OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | COLUMN_NAME | OBJECT_INSTANCE_BEGIN | LOCK_TYPE | LOCK_DURATION | LOCK_STATUS | SOURCE | OWNER_THREAD_ID | OWNER_EVENT_ID | ------------ -------------------- ---------------- ------------ ----------------------- --------------------- -------------------------------------------------- -------------------- ----------------- ----------------- + ---------------- | TABLE | test | t1 | NULL | 139394298895872 | SHARED_READ | TRANSACTION | GRANTED | sql_parse.cc:7688 | 3513381 | 1 | | TABLE | test | t1 | NULL | 139394298602240 | SHARED_READ | TRANSACTION | GRANTED | sql_parse.cc:7688 | 3519277 | 1 | | TABLE | test | t1 | NULL | 139917548369664 | SHARED_READ | TRANSACTION | GRANTED | sql_parse.cc:7688 | 3519279 | 1 | | TABLE | test | t1 | NULL | 139394296661888 | SHARED_READ | TRANSACTION | GRANTED | sql_parse.cc:7688 | 3519278 | 1 | | TABLE | test | t1 | NULL | 139394297595520 | SHARED_READ | TRANSACTION | GRANTED | sql_parse.cc:7688 | 3519276 | 1 | | スキーマ | テスト | NULL | NULL | 139464322084864 | INTENTION_EXCLUSIVE | EXPLICIT | GRANTED | sql_table.cc:17404 | 57 | 1 | | TABLE | test | t1 | NULL | 139464322084992 | 排他的 | EXPLICIT | PENDING | sql_table.cc:17410 | 57 | 1 | | TABLE | performance_schema | metadata_locks | NULL | 139394296038784 | SHARED_READ | TRANSACTION | GRANTED | sql_parse.cc:7688 | 3518506 | 1 | ------------ -------------------- ---------------- ------------ ----------------------- --------------------- -------------------------------------------------- -------------------- ----------------- ----------------- + ---------------- セットの8行 (0.00秒)
読み取り専用ノードの
3513381
、3519277
、3519279
、3519278
、および3519276
のスレッドは、test/t1
テーブルのSHARED_READ
ロックを保持します。performance_schema.threads
テーブルを使用して、これらのスレッドの詳細を取得できます。 同様の結果が返されます。/* force_node='pi-bp186ko4o21wl **** '*/ select * from performance_schema.threadsここでTHREAD_ID in (3519278,3513381、3519279,3519276、3519277)\G *************************** 1。 行 *************************** THREAD_ID: 3513381 名前: スレッド /sql/one_connection タイプ: FOREGROUND PROCESSLIST_ID: 538961413 PROCESSLIST_USER: zyg_root PROCESSLIST_HOST: 172.17.28.253 PROCESSLIST_DB: テスト PROCESSLIST_COMMAND: 接続 PROCESSLIST_TIME: 103 PROCESSLIST_STATE: ユーザースリープ PROCESSLIST_INFO: select *,sleep (60) from t1 PARENT_THREAD_ID: NULL ROLE: NULL 指示: はい 歴史: はい CONNECTION_TYPE: TCP/IP THREAD_OS_ID: 63826 RESOURCE_GROUP: NULL *************************** 2. 行 *************************** THREAD_ID: 3519276 名前: thread/sql/parallel_worker タイプ: FOREGROUND PROCESSLIST_ID: 1855915 PROCESSLIST_USER: zyg_root PROCESSLIST_HOST: 172.17.28.253 PROCESSLIST_DB: テスト PROCESSLIST_COMMAND: 睡眠 PROCESSLIST_TIME: 103 PROCESSLIST_STATE: データの送信 PROCESSLIST_INFO: select *,sleep (60) from t1 PARENT_THREAD_ID: 3513381 ROLE: NULL INSTRUMETED: いいえ 歴史: はい CONNECTION_TYPE: NULL THREAD_OS_ID: 7117 RESOURCE_GROUP: NULL 3. 行 *************************** THREAD_ID: 3519277 名前: thread/sql/parallel_worker タイプ: FOREGROUND PROCESSLIST_ID: 1855917 PROCESSLIST_USER: zyg_root PROCESSLIST_HOST: 172.17.28.253 PROCESSLIST_DB: テスト PROCESSLIST_COMMAND: 睡眠 PROCESSLIST_TIME: 103 PROCESSLIST_STATE: データの送信 PROCESSLIST_INFO: select *,sleep (60) from t1 PARENT_THREAD_ID: 3513381 ROLE: NULL INSTRUMETED: いいえ 歴史: はい CONNECTION_TYPE: NULL THREAD_OS_ID: 7116 RESOURCE_GROUP: NULL 4. 行 *************************** THREAD_ID: 3519278 名前: thread/sql/parallel_worker タイプ: FOREGROUND PROCESSLIST_ID: 1855916 PROCESSLIST_USER: zyg_root PROCESSLIST_HOST: 172.17.28.253 PROCESSLIST_DB: テスト PROCESSLIST_COMMAND: 睡眠 PROCESSLIST_TIME: 103 PROCESSLIST_STATE: データの送信 PROCESSLIST_INFO: select *,sleep (60) from t1 PARENT_THREAD_ID: 3513381 ROLE: NULL INSTRUMETED: いいえ 歴史: はい CONNECTION_TYPE: NULL THREAD_OS_ID: 7119 RESOURCE_GROUP: NULL *************************** 5。 行 *************************** THREAD_ID: 3519279 名前: thread/sql/parallel_worker タイプ: FOREGROUND PROCESSLIST_ID: 1855918 PROCESSLIST_USER: zyg_root PROCESSLIST_HOST: 172.17.28.253 PROCESSLIST_DB: テスト PROCESSLIST_COMMAND: 睡眠 PROCESSLIST_TIME: 103 PROCESSLIST_STATE: データの送信 PROCESSLIST_INFO: select *,sleep (60) from t1 PARENT_THREAD_ID: 3513381 ROLE: NULL INSTRUMETED: いいえ 歴史: はい CONNECTION_TYPE: NULL THREAD_OS_ID: 7118 RESOURCE_GROUP: NULL セットの5行 (0.00秒)
読み取り専用ノードでのクエリ操作はロックを保持し、ロックを長期間解放しません。 並列クエリ機能が有効になっているため、複数の
parallel_worker
スレッドが同時にメタデータロックを保持します。 実際のビジネス要件に応じて、トランザクションがコミットされるのを待つか、KILL processlist_id
ステートメントを実行してトランザクションを終了してから、ALTER TABLE t1 ADD column d varchar(10),algorithm = inplace
ステートメントを再度実行できます。