テーブルがロックされているかどうかを確認する MySQL の方法: まずコマンド ウィンドウに入り、次にコマンド「show Engine innodb status\G;」を実行して、デッドロックの原因となっている SQL ステートメントを確認し、インデックスの状況を分析します。
mysql コマンド ラインで直接実行できます: show Engine innodb status\G;
原因となっている SQL ステートメントを表示します。デッドロック、インデックスの状況を分析し、SQL を最適化し、プロセスリストを表示します;
推奨コース: MySQL チュートリアル 。
mysql> show status like 'Table%';
+----------------------------+----------+ | Variable_name | Value | +----------------------------+----------+ | Table_locks_immediate | 105 | | Table_locks_waited | 3 | +----------------------------+----------+
Table_locks_immediate は、テーブル レベルのロックをすぐに取得できる回数を指します
Table_locks_waited は、これを指しますテーブル レベルのロックをすぐに取得できない回数 テーブル レベルのロックを取得するまで待機する必要がある回数
show OPEN TABLES where In_use > 0; このステートメントは現在のロックを記録します。テーブルのステータス
my.ini 設定ファイルの [mysqld] オプションに追加:
slow_query_log=TRUE
slow_query_log_file=c:/slow_query_log.txt
long_query_time=3
追加が完了したら、忘れずに mysql サービスを再起動して有効にし、出力をログに記録します。最後に、Smile は MySQL クライアントにコマンドを入力しました:
show variables like '%quer%'; Check if it is OK
Enable mysql low query log
Viewconfiguration :
//查看慢查询时间 show variables like "long_query_time";默认10s //查看慢查询配置情况 show status like "%slow_queries%"; //查看慢查询日志路径 show variables like "%slow%"; -slow_query_log是否记录慢查询。用long_query_time变量的值来确定“慢查询”。 -slow_query_log_file慢日志文件路径 -long_query_time慢日志执行时长(秒),超过设定的时间才会记日志
問題の出発点である MySQL クエリ テーブルのデッドロックと、デッドロックを終了するテーブルの手順に戻りましょう
1. テーブルがロックされているかどうかをクエリする show OPEN TABLES where In_use > 0;
2. プロセスをクエリします
show processlist 対応するプロセスをクエリします===そして、id
補足:
ロックされているトランザクションの表示
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
ロックを待機しているトランザクションの表示
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
以上がMySQL はテーブルがロックされているかどうかをチェックしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。