MySQLログの通常のクエリーログと遅いクエリーログ
3196 ワード
Intro
以前の記事では、MySQLのログ・タイプは、エラー・ログ(error_log)、クエリー・ログ(query_log)、バイナリ・ログ(binary_log)、error_の3つに分けることができます.logの紹介と使い方はMySQLログのerrorを参照してください.log、ここでは主にgeneralを紹介します.logとslow_query_logの原理と使い方.
汎用クエリー・ログ
汎用クエリー・ログ(general_log)は、主に各クライアントがデータベースに接続する際の関連情報と、データベース上で実行されるSQL文をクエリーするために使用されます.構成方法は、次のとおりです.
1、クエリー共通クエリーログがその保存パスを開くかどうか:
画面出力
2、共通クエリーログを開く
クエリが成功したかどうか:
成功しました.
生成され、正しく記録されているかどうかを確認します.
成功しました.logにはSQLコマンドだけでなく、実行時間、Id、コマンドタイプなどの関連データも記録されています.
スロー・クエリー・ログ
スロークエリログSQL文が予め設定されたlong_を超える時間を記録query_timeの文は、データ量が大きい場合、遅いクエリー・ログに最適化する必要がある文を見ることができます.
1、スロークエリーログの構成
スロー・クエリー・ログの構成は、データベース・プロファイル
次のように表示されます.
実際の構成は汎用クエリー・ログと同じで、mysqlインタフェースでコマンドを入力して遅いクエリー・ログを開きます.
2、クエリが成功したかどうか
成功しました.
ただし、slow_query_logは、ユーザー権限とパスワードに関連する文に記録される可能性がありますので、ログファイルの遅いクエリーを使用する場合は、ログの安全な保存に注意してください.
以前の記事では、MySQLのログ・タイプは、エラー・ログ(error_log)、クエリー・ログ(query_log)、バイナリ・ログ(binary_log)、error_の3つに分けることができます.logの紹介と使い方はMySQLログのerrorを参照してください.log、ここでは主にgeneralを紹介します.logとslow_query_logの原理と使い方.
汎用クエリー・ログ
汎用クエリー・ログ(general_log)は、主に各クライアントがデータベースに接続する際の関連情報と、データベース上で実行されるSQL文をクエリーするために使用されます.構成方法は、次のとおりです.
1、クエリー共通クエリーログがその保存パスを開くかどうか:
mysql> show variables like "general_log%";
+------------------+------------------------------+
| Variable_name | Value |
+------------------+------------------------------+
| general_log | OFF |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
2 rows in set (0.00 sec)
画面出力
general_log
およびgeneral_log_file
には、現在の汎用クエリー・ログのスイッチング状態およびパスが記録されている.2、共通クエリーログを開く
set global general_log = ON
クエリが成功したかどうか:
mysql> show variables like "general_log%";
+------------------+------------------------------+
| Variable_name | Value |
+------------------+------------------------------+
| general_log | ON |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
2 rows in set (0.00 sec)
成功しました.
生成され、正しく記録されているかどうかを確認します.
[root@localhost ~]# cat /var/lib/mysql/localhost.log
/usr/sbin/mysqld, Version: 5.7.19 (MySQL Community Server (GPL)). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
2017-08-14T09:33:11.364650Z 5 Quit
2017-08-14T09:33:20.671113Z 6 Connect root@localhost on using Socket
2017-08-14T09:33:20.671323Z 6 Query select @@version_comment limit 1
2017-08-14T09:33:22.964610Z 6 Query show variables like '%log%'
2017-08-14T09:33:24.574224Z 6 Quit
成功しました.logにはSQLコマンドだけでなく、実行時間、Id、コマンドタイプなどの関連データも記録されています.
スロー・クエリー・ログ
スロークエリログSQL文が予め設定されたlong_を超える時間を記録query_timeの文は、データ量が大きい場合、遅いクエリー・ログに最適化する必要がある文を見ることができます.
1、スロークエリーログの構成
スロー・クエリー・ログの構成は、データベース・プロファイル
my.cnf
で確認できます.[root@localhost ~]# cat /etc/my.cnf | grep -E 'long|slow|not_using_indexes'
long_query_time = 1
#log-slow-queries = /var/log/mysql/slow.log
log_queries_not_using_indexes
次のように表示されます.
long_query_time = 1
とは、SQL文の実行時間が1 sを超えたことを意味し、それを記録する.log-slow-queries = /var/log/mysql/slow.log
は、スロークエリログパスの設定である.log_queries_not_using_indexes
はインデックスを使用しない文を意味し、記録の目標を縮小することができる実際の構成は汎用クエリー・ログと同じで、mysqlインタフェースでコマンドを入力して遅いクエリー・ログを開きます.
set slow_query_log = ON
2、クエリが成功したかどうか
[root@localhost ~]# cat /var/lib/mysql/localhost-slow.log
/usr/sbin/mysqld, Version: 5.7.19 (MySQL Community Server (GPL)). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
成功しました.
ただし、slow_query_logは、ユーザー権限とパスワードに関連する文に記録される可能性がありますので、ログファイルの遅いクエリーを使用する場合は、ログの安全な保存に注意してください.