時間のかかる SQL ステートメントを記録する mysql の詳細な例

小云云
リリース: 2017-12-22 13:24:35
オリジナル
1424 人が閲覧しました

mysql は時間のかかる SQL を記録します

mysql は、最適化と分析のために、時間のかかる SQL またはインデックスのない SQL を低速ログに記録できます。この記事では主に、mysql レコードの時間のかかる SQL 例の詳細な説明に関する情報を紹介します。必要な方は参考にしていただければ幸いです。

1. mysql スロー クエリ ログを有効にする:

mysql スロー クエリ ログは、現在のプログラムでリソースを消費する SQL ステートメントを分析するのに非常に役立ちます。 mysql とは何ですか?


mysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| log_slow_queries | OFF | 
+------------------+-------+
1 row in set (0.01 sec)

mysql>
ログイン後にコピー

これは、スローログ機能が有効になっていないことを意味し、これを有効にするには、mysql 設定ファイル「[mysqld]」に次の 2 つのパラメータを追加する必要があります。


long_query_time=1
log-slow-queries=/var/mysql/logs/slow.log
ログイン後にコピー

説明


long_query_time

このパラメータはスロークエリの測定時間を表します。単位は秒、最小値は1、デフォルト値は10です。実行時間がlong_query_timeを超えるSQL文は、スロークエリログに記録されます

log-slow-queries[=file_name]

file_name パラメータが指定されている場合、デフォルト値は host_name-slow.log です。 file_name で設定されたファイルにスロー クエリ ログを記録します。 file_name が相対パスを指定すると、mysql はログを mysql のデータ ディレクトリに記録します。このパラメータは設定ファイルにのみ追加でき、コマンド ラインでは実行できません。

2. 未使用のインデックスクエリをスローログに記録する設定

mysql 起動設定ファイルまたはコマンドラインパラメータに「log_queries_not_using_indexes」パラメータを追加して、未使用のインデックスクエリステートメントをスローログ Inside に追加します。

サンプルは次のとおりです:



[root@localhost mysqlsla-2.03]# more /etc/my.cnf 
[mysqld]
datadir=/var/lib/mysql
log_bin=/tmp/mysql/bin-log/mysql-bin.log
log_bin=ON
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1


log_slow_queries=/tmp/127_slow.log
long_query_time=1
log_queries_not_using_indexes

.......
ログイン後にコピー

mysqlを再起動した後のチェック結果は次のとおりです:


mysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| log_slow_queries | ON | 
+------------------+-------+
1 row in set (0.00 sec)

mysql> show variables like 'long_query_time';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| long_query_time | 2  | 
+-----------------+-------+
1 row in set (0.00 sec)

mysql>
ログイン後にコピー
関連推奨事項:


mysqlは時間のかかるsql_MySQLを記録します

使用するMySQLでSQL消費量を分析する 時間の質問

長時間実行されるphpファイルの対処方法について

以上が時間のかかる SQL ステートメントを記録する mysql の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!