無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 4 データベース管理 :: 4.11 MySQL サーバ ログ :: 4.11.5 スロー クエリ ログ
« 4.11.4 バイナリ ログ

4.11.6 ログ ファイルの保守 »
Section Navigation      [Toggle]
  • 4.11 MySQL サーバ ログ
  • 4.11.1 一般クエリとスロー クエリのログ出力先の選択
  • 4.11.2 エラー ログ
  • 4.11.3 一般クエリ ログ
  • 4.11.4 バイナリ ログ
  • 4.11.5 スロー クエリ ログ
  • 4.11.6 ログ ファイルの保守

4.11.5. スロー クエリ ログ

スロー クエリ ログの内容は、long_query_time 秒より実行に時間がかかる SQL ステートメントすべてが入ります。最初のテーブル ロックを取得するまでの時間は、実行時間としてはカウントしていません。すべてのステートメントを実行し、すべてのロックをリリースした後に、mysqld で、ステートメントをスロー クエリ ログとして書き込むため、ログ順は実行順とは異なることがあります。最低限値は 1 で、long_query_time のデフォルト値 (最大値) は 10です。

MySQL 5.1.6 以降、スロー クエリ ログを有効化するには、mysqld を --log-slow-queries[=file_name] オプションで起動します。必要に応じて、--log-output オプションを使用して、ログの出力先を指定します。(項4.11.1. 「一般クエリとスロー クエリのログ出力先の選択」 を参照のこと。) MySQL 5.1.6 より前は、スロー クエリ ログの出力先はファイルです。スロー クエリ ログ ファイルを有効化するには、--log-slow-queries[=file_name] オプションを使用します。

--log-slow-queriesに file_name 値を指定しない場合、デフォルト名は、host_name-slow.log というデータ ディレクトリのファイル名になります。絶対パスでファイル名を指定しない場合、このファイルはデータ ディレクトリに置かれます。

MySQL 5.1.12 以降、--log-slow-queries を指定する場合、--slow-query-log オプションで最初のスロー クエリ ログ状態を指定することも可能です。このオプションで、引数なし、または 値を 0 にすると、ログが無効化します。省略する、または値を 1 とすると、ログが有効化します。--log--slow-queries を指定しない場合、--slow-query-log には何の影響もありません。

slow_query_log および slow_query_log_file のグローバル システム変数で、スロー クエリ ログのランタイム制御ができます。slow_query_log を 0 (または OFF) にすると、ログが無効化し、1 (または ON) で有効化します。general_log_file を指定して、ログ ファイルの名前を指定することもできます。ログ ファイルがすでに開いている場合は、それを閉じて、新規ファイルを開けます。

スロー クエリ ログを有効化した場合、出力の書き込み先は --log-output オプション、または log_output 環境変数で指定します。ノート: 出力先が NONE である場合、スロー ログを有効化していても、出力書き込みはできません。同様に、ログ出力先の値に FILE がない場合は、ログ効果はありません。

スロー クエリ ログには、実行に時間がかかるクエリが入るため、最適化の対象になります。しかし、時間がかかるスロー クエリ ログの検査は手間がかかります。ここで、mysqldumpslow コマンドを使用してスロー クエリ ログを処理することで、そのクエリをログに概括表示します。mysqldumpslow --help を使用して、このコマンドに関するサポートを探してください。

MySQL 5.1 では、インデックスを使用しないクエリは、--log-queries-not-using-indexes オプションで指定すると、スロー クエリ ログで記録するようになります。詳細は 項4.2.2. 「コマンド オプション」 を参照してください。

MySQL Enterprise.? 過剰なテーブル スキャンはインデックスの最適化に悪影響を与える、またはインデックスを損失する原因になります。MySQL Network Monitoring and Advisory Service では、専門家とともにインデックスに関する事前対策、解決策を提供しています。詳細は http://www-jp.mysql.com/products/enterprise/advisors.html を参照してください。

MySQL 5.1 では、スロー クエリ ログに対して、--log-slow-admin-statements というサーバ オプションで、OPTIMIZE TABLE、ANALYZE TABLE、ALTER TABLE など、時間がかかる管理ステートメントのロギング要求を有効化します。

クエリ キャッシュで扱うクエリは、スロー クエリ ログには付加しません。テーブルのレコードがない、または 1 つだけであるときは、インデックスで管理する必要がないため、これもスロー クエリ ログには入りません。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.