MySQL は、リレーショナル データベース管理システムをベースにしたオープン ソース ソフトウェアです。これはアプリケーションで広く使用されており、開発者にデータを保存するための信頼できる方法を提供します。ただし、MySQL は大量のデータを処理するときにロックされたテーブルの維持に問題が発生する傾向があるため、開発者はロックされたテーブルをクエリする方法を知っている必要があります。
MySQL を使用して開発する場合、ロックされたテーブルをクエリする必要が生じることがよくあります。 MySQL には、コマンド ライン ツールの使用、システム ビューのクエリ、情報スキーマ テーブルのクエリなど、現在ロックされているテーブルをクエリするためのさまざまな方法が用意されています。各クエリ方法については以下で詳しく説明し、いくつかの例を示します。
SHOW PROCESSLIST;
これにより、現在実行中のすべての MySQL スレッドのリストが表示されます。リストでは、ID、ユーザー、ホスト、データベース、コマンド、時刻、ステータスなどの役立つ情報を表示できます。たとえば、「table_name」という名前のテーブルをロックしているスレッドがある場合、「Command」列に「LOCK」フィールドが表示されます。さらに、「情報」列では、クエリによって実行されている SQL ステートメントを表示できます。
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS WHERE LOCK_TABLE LIKE '%table_name%';
このクエリ ステートメントでは、「table_name」をクエリするテーブルの名前に置き換えることができます。このステートメントは、InnoDB エンジンによって現在ロックされているすべての行とテーブルを返します。さらに、INFORMATION_SCHEMA.INNODB_LOCK_WAITS ビューをクエリして、ロック リソースを待機しているスレッドを見つけることができます。
SELECT * FROM information_schema.TABLES WHERE ENGINE = 'InnoDB' AND TABLE_NAME = 'table_name';
上記のクエリでは、「table_name」をクエリするテーブルの名前に置き換えることができます。このクエリは、指定されたテーブル サーバーとストレージ エンジンの詳細を返します。テーブルがロックされている場合は、ロック タイプを LOCK_TYPE フィールドで確認できます。
概要:
MySQL は、ロックされたテーブルをさまざまな方法でクエリできます。コマンド ライン ツールを使用して、実行中のスレッドをクエリし、特定のテーブルをロックしているスレッドを検索します。システム ビューを使用して、進行中の操作、待機中の操作、およびロックを取得する操作を特定します。information_schema.TABLES テーブルをクエリして、識別するための "QUERY" 列を見つけます。実行されているクエリがロックに関するものであるか、他のクエリに関するものであるか。ただし、変更を加える前に、MySQL の公式ドキュメントを注意深く読み、不必要な損失を避けるために必要な知識と推奨事項をすべて理解してください。
以上がmysqlクエリでロックされたテーブルについて詳しく説明しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。