MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
パフォーマンススキーマは、table_handles テーブルを介してテーブルロック情報を公開し、開いているテーブルハンドルごとに現在有効なテーブルロックを表示します。table_handles では、テーブルロックインストゥルメンテーションによって記録される内容がレポートされます。 この情報には、サーバーが開いているテーブルハンドル、ロック方法、およびセッションが表示されます。
table_handles テーブルは読取り専用であり、更新できません。 デフォルトでは自動サイズ設定されています。テーブルサイズを構成するには、サーバーの起動時に performance_schema_max_table_handles システム変数を設定します。
テーブルロックのインストゥルメンテーションでは、デフォルトで有効になっている wait/lock/table/sql/handler インストゥルメントが使用されます。
サーバー起動時のテーブルロックのインストゥルメンテーション状態を制御するには、my.cnf ファイルで次のような行を使用します:
有効化:
[mysqld] performance-schema-instrument='wait/lock/table/sql/handler=ON'
無効化:
[mysqld] performance-schema-instrument='wait/lock/table/sql/handler=OFF'
実行時にテーブルロックのインストゥルメンテーション状態を制御するには、setup_instruments テーブルを更新します:
有効化:
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES', TIMED = 'YES' WHERE NAME = 'wait/lock/table/sql/handler';
無効化:
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO', TIMED = 'NO' WHERE NAME = 'wait/lock/table/sql/handler';
table_handles テーブルには、次のカラムがあります:
OBJECT_TYPE
テーブルハンドルによってオープンされたテーブル。
OBJECT_SCHEMA
オブジェクトを格納するスキーマ。
OBJECT_NAME
インストゥルメントされたオブジェクトの名前。
OBJECT_INSTANCE_BEGIN
メモリー内のテーブルハンドルアドレス。
OWNER_THREAD_ID
テーブルハンドルを所有するスレッド。
OWNER_EVENT_ID
テーブルハンドルがオープンされる原因となったイベント。
INTERNAL_LOCK
SQL レベルで使用されるテーブルロック。 値は、READ, READ WITH SHARED LOCKS, READ HIGH PRIORITY, READ NO INSERT, WRITE ALLOW WRITE, WRITE CONCURRENT INSERT, WRITE LOW PRIORITY または WRITE のいずれかです。 これらのロックタイプについては、include/thr_lock.h ソースファイルを参照してください。
EXTERNAL_LOCK
ストレージエンジンレベルで使用されるテーブルロック。 値は、READ EXTERNAL または WRITE EXTERNAL のいずれかです。
table_handles テーブルには次のインデックスがあります:
主キー (OBJECT_INSTANCE_BEGIN)
(OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME) のインデックス
(OWNER_THREAD_ID、OWNER_EVENT_ID) のインデックス
TRUNCATE TABLE は、table_handles テーブルに対して許可されていません。