sql >> データベース >  >> RDS >> Mysql

MySQLの低速クエリログを有効にするにはどうすればよいですか?

    バージョン5.1.6以降:

    1。 MySQLシェルに入り、次のコマンドを実行します:

    set global slow_query_log = 'ON';

    2。その他の必要なオプションを有効にします。一般的な例を次に示します。

    インデックスを使用する代わりにすべての行を取得することが期待されるクエリのログの詳細:

       set global log_queries_not_using_indexes = 'ON'
    

    低速クエリログへのパスを設定します:

      set global slow_query_log_file ='/var/log/mysql/slow-query.log';
    

    ログに記録されるまでにクエリを実行する必要がある時間を設定します:

       set global long_query_time = 20;
         (default is 10 seconds)
    

    3。 MySQLシェルに入り、次のコマンドを実行して、変更がアクティブであることを確認します。

    show variables like '%slow%';
    

    5.1.6より前のバージョン:

    1. /etc/my.cnfファイルをお気に入りのテキストエディタで編集しますvi/etc/my.cnf

    2. 「[mysqld]」セクションの下に次の行を追加します。ログファイルへのパスを自由に更新してください:

      log-slow-queries=/var/log/mysql/slow-query.log

    3。必要に応じて追加のオプションを有効にします。上記と同じ一般的に使用される例を次に示します。

    ログに記録されるまでにクエリを実行する必要がある時間を設定します:

      `long_query_time=20
      (default is 10 seconds)`
    

    インデックスを使用する代わりにすべての行を取得することが期待されるクエリのログの詳細:

     `log-queries-not-using-indexes`
    

    4。 MySQLサービスを再起動します:

    service mysqld restart
    

    5。 MySQLシェルに入り、以下を実行して、変更がアクティブであることを確認します。

    show variables like '%slow%';
    

    更新:1

    MySQLのドキュメントによると、SQLSTATEに間違ったコードを使用すると、エラー#1193が発生します。

    Message: Unknown system variable %s
    

    また、同じページでわかるように、SQLSTATE99003は定義されていません。

    このリンクを参照してください:

    http://dev.mysql.com/doc /refman/5.5/en/slow-query-log.html

    http://dev.mysql.com/doc /refman/5.1/en/slow-query-log.html



    1. SQL:WHERE句内のIF句

    2. mysqlでのシンプルメンバーシッププロバイダーの使用

    3. MariaDBクラスターを監視するためのヒント

    4. バックエンドデータベースが非同期的に変更されたときにJPAエンティティを更新するにはどうすればよいですか?