方法: 1. 「show OPEN TABLES where In_use > 0;」コマンドを使用して、テーブルのロック状態を確認します。 2. 「SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS」コマンドを使用して、ロックされた状態をクエリします。テーブル。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
mysql はロックされたテーブルをどのようにクエリしますか
#1. テーブルがロックされているかどうかを確認します:
(1) 直接Mysql コマンドライン実行時: show Engine innodb status\G。
(2) デッドロックの原因となったSQL文を確認し、インデックスの状況を分析し、SQLを最適化します。
(3) 次に、show processlist を実行して、デッドロックに時間がかかる SQL 文を確認します。
(4)「%lock%」のようなステータスを表示します。
2. テーブル ロック ステータスを確認し、デッドロック ステップを終了します:
(1) テーブル ロック ステータスを確認します: show OPEN TABLES where In_use > 0; このステートメントは、現在のロック テーブル ステータスを記録します。 。
(2) プロセスのクエリ: show processlist クエリ テーブル ロックされたプロセス; 対応するプロセスの killid をクエリします。
(3) テーブルをロックする SQL を分析します。対応する SQL を分析し、テーブルにインデックスを追加し、共通フィールドにインデックスを追加し、テーブル関連フィールドにインデックスを追加します。
(4) 何がロックされているかを確認します: SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS。
(5) ロックを待機しているものを表示します: SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS。
拡張情報
MySQL ロック ステータス表示コマンド:
テーブルのチェック: データ テーブルをチェックしています (これは自動です)。
テーブルを閉じる: テーブル内の変更されたデータはディスクにフラッシュされ、使用済みのテーブルは閉じられます。これは簡単な操作ですが、そうでない場合は、ディスク領域がいっぱいであるか、ディスクに高い負荷がかかっているかを確認する必要があります。
接続出力: レプリケーション スレーブ サーバーがマスター サーバーに接続しています。
ディスク上の tmp テーブルにコピーしています: 一時的な結果セットが tmp_table_size より大きいため、メモリを節約するために一時テーブルがメモリ ストレージからディスク ストレージに変換されています。
Creating tmp table: クエリ結果を保存するために一時テーブルを作成しています。
メインテーブルからの削除: サーバーは複数テーブルの削除の最初の部分を実行中で、最初のテーブルを削除したところです。
参照テーブルからの削除: サーバーは複数テーブルの削除の 2 番目の部分を実行し、他のテーブルからレコードを削除しています。
テーブルのフラッシュ: FLUSH TABLES が実行されており、他のスレッドがデータ テーブルを閉じるのを待っています。
Killed: kill リクエストがスレッドに送信されると、スレッドは kill フラグをチェックし、次の kill リクエストを放棄します。 MySQL は各メイン ループで kill フラグをチェックしますが、場合によっては、スレッドが短期間で終了する可能性があります。スレッドが別のスレッドによってロックされている場合、kill リクエストはロックが解放されるとすぐに有効になります。
ロック: 他のクエリによってロックされています。
データの送信: SELECT クエリのレコードが処理され、結果がクライアントに送信されます。
グループの並べ替え: GROUP BY の並べ替え。
順序の並べ替え: ORDER BY の並べ替え。
テーブルを開く: 他の要因によって妨げられない限り、このプロセスは高速である必要があります。たとえば、ALTER TABLE または LOCK TABLE ステートメントが実行されるまで、他のスレッドでデータ テーブルを開くことはできません。テーブルを開こうとしています。
重複の削除: SELECT DISTINCT クエリが実行されていますが、MySQL は前の段階で重複レコードを最適化できません。したがって、MySQL は結果をクライアントに送信する前に重複レコードを再度削除する必要があります。
テーブルを再オープン: テーブルのロックが取得されましたが、テーブル構造が変更されるまでロックを取得できません。ロックが解放され、データ テーブルが閉じられ、データ テーブルを再度オープンしようとしました。
ソートによる修復: 修復ディレクティブは、インデックスを作成するためにソートしています。
キーキャッシュによる修復: 修復ディレクティブは、インデックス キャッシュを利用して新しいインデックスを 1 つずつ作成します。ソートによる修復よりも遅くなります。
更新対象行の検索: 更新条件を満たすレコードを検索します。 UPDATE が関連レコードを変更する前に完了する必要があります。
スリープ中: クライアントが新しいリクエストを送信するのを待っています。
システム ロック: 外部システム ロックの取得を待機しています。現在、同じテーブルを同時にリクエストする複数の mysqld サーバーを実行していない場合は、 --skip-external-locking パラメーターを追加して外部システム ロックを無効にすることができます。
ロックをアップグレードしています: INSERT DELAYED は、新しいレコードを挿入するためのロック テーブルを取得しようとしています。
更新: 一致するレコードを検索し、それらを変更します。ユーザー ロック: GET_LOCK() を待機しています。
テーブルを待機中: データ テーブル構造が変更されたため、新しい構造を取得するにはデータ テーブルを再度開く必要があることがスレッドに通知されます。その後、データ テーブルを再度開くには、他のすべてのスレッドがテーブルを閉じるまで待つ必要があります。
ハンドラー挿入を待機中: INSERT DELAYED は保留中の挿入操作をすべて処理し、新しい要求を待機しています。
推奨学習: mysql ビデオ チュートリアル
以上がmysqlでロックされたテーブルをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

データベースの最適化では、クエリ要件に従ってインデックス作成戦略を選択する必要があります。1。クエリに複数の列が含まれ、条件の順序が固定されている場合、複合インデックスを使用します。 2。クエリに複数の列が含まれているが、条件の順序が修正されていない場合、複数の単一列インデックスを使用します。複合インデックスは、マルチコラムクエリの最適化に適していますが、単一列インデックスは単一列クエリに適しています。

MySQLスロークエリを最適化するには、slowquerylogとperformance_schemaを使用する必要があります。1。LowerQueryLogを有効にし、しきい値を設定して、スロークエリを記録します。 2。performance_schemaを使用してクエリの実行の詳細を分析し、パフォーマンスのボトルネックを見つけて最適化します。

MySQLとSQLは、開発者にとって不可欠なスキルです。 1.MYSQLはオープンソースのリレーショナルデータベース管理システムであり、SQLはデータベースの管理と操作に使用される標準言語です。 2.MYSQLは、効率的なデータストレージと検索機能を介して複数のストレージエンジンをサポートし、SQLは簡単なステートメントを通じて複雑なデータ操作を完了します。 3.使用の例には、条件によるフィルタリングやソートなどの基本的なクエリと高度なクエリが含まれます。 4.一般的なエラーには、SQLステートメントをチェックして説明コマンドを使用することで最適化できる構文エラーとパフォーマンスの問題が含まれます。 5.パフォーマンス最適化手法には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、コードの読み取り可能性の向上が含まれます。

MySQL非同期マスタースレーブレプリケーションにより、BINLOGを介したデータの同期が可能になり、読み取りパフォーマンスと高可用性が向上します。 1)マスターサーバーレコードはBinlogに変更されます。 2)スレーブサーバーは、I/Oスレッドを介してBINLOGを読み取ります。 3)サーバーSQLスレッドは、BINLOGを適用してデータを同期させます。

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

MySQLのインストールと基本操作には、次のものが含まれます。1。mysqlをダウンロードしてインストールし、ルートユーザーパスワードを設定します。 2。sqlコマンドを使用して、createdatabaseやcreateTableなどのデータベースとテーブルを作成します。 3. CRUD操作を実行し、挿入、選択、更新、コマンドを削除します。 4.パフォーマンスを最適化し、複雑なロジックを実装するためのインデックスとストアドプロシージャを作成します。これらの手順を使用すると、MySQLデータベースをゼロから構築および管理できます。

Innodbbufferpoolは、データとインデックスページをメモリにロードすることにより、MySQLデータベースのパフォーマンスを向上させます。 1)データページは、ディスクI/Oを削減するためにBufferPoolにロードされます。 2)汚れたページは、定期的にディスクにマークされ、リフレッシュされます。 3)LRUアルゴリズム管理データページの排除。 4)読み出しメカニズムは、可能なデータページを事前にロードします。

MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
