#查看是否开启show variables like '%slow_query_log%';#开启set global slow_query_log = 1;
show variables like '%long_query_time%'または、接続を再度開かずに次のコマンドを使用することもできます:
show variables like '%long_query_time%'どの SQL がログに記録されるかは、long_query_time によって制御されます。デフォルトでは、long_query_time の値は 10 秒です。時間はlong_query_timeと正確に等しい場合、記録されません。つまり、mysqlではlong_query_time以上ではなく、より大きいと判断されます。 次のステートメントを使用してテストを実行できます
show variables like '%long_query_time%';long_query_time を 3 秒に設定すると、このステートメントが記録されます。
遅いログの数を表示する
SELECT sleep(4)ログ分析ツール mysqldumpslow 運用環境で手動でログを分析し、SQL を見つけて分析したい場合、MySql が提供するログ分析は明らかに面倒な作業です。 mysqldumpslow ツール。 例:
show global status like '%slow_queries%'
#得到返回记录集最多的10个SQL Mysqldumpslow –s r –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log#得到访问次数最多的10个SQL Mysqldumpslow –s c –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log#得到按照时间排序的前10条里面含有左连接的查询 Mysqldumpslow –s t –t 10 –g “left join” D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log#另外建议在使用这些命令时结合|和more使用,否则可能出现爆破情况 Mysqldumpslow –s r –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log|moreSQL 分析には show profile を使用します show profile コマンドは、現在のセッションでのステートメント実行のリソース消費を分析できます。 SQL に時間のかかるボトルネックを見つけるために使用されます。デフォルトではオフになっており、過去 15 回の実行結果が保存されます。 有効かどうかを確認します (「profiling」などの変数を表示します)
関数を有効にします (set profiling = on;)
有効にすると、その後の SQL の実行を記録できます。次に、show profiles を使用して結果を表示します:
コマンド (show profile cpu, block io for query 3;) を通じて特定の SQL ステートメントの実行をさらに分析します。たとえば、SQL No. 3 の状況を分析します。下に。
Show profile の背後にあるいくつかのパラメータ:
All: すべてのオーバーヘッド情報を表示CPU: CPU関連のオーバーヘッドを表示します
参数含义 s: 表示按照何种方式排序 c:访问次数 l:锁定时间 r:返回记录 t:查询时间 al:平均锁定时间 t:返回前面多少条的数据 g:后面搭配一个正则表达式その後、mysql によって実行された SQL ステートメントは mysql.genearl_log テーブルに記録され、次のコマンドで表示できます:
set global general_log = 1;#以表的形式输出set global log_output = ‘TABLE’構成ファイルで次のように設定します:
select * from mysql.general_log;
以上がMySQL を使用して SQL に時間のかかる問題を分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。