Linux
 Computer >> コンピューター >  >> スマートフォン >> Linux

MySQLで低速クエリロギングを設定する方法

このガイドでは、MySQLで「低速クエリ」ロギングを設定して、どのクエリが低速化を引き起こしているかを特定する方法について説明します。

本番MySQLサーバーを実行または管理している場合、実行速度が少し遅くなることがあり、その理由を理解するのに非常に時間のかかる作業になる可能性があります。 DBの速度を低下させるクエリを特定できるようにすることは、追跡が難しい場合があります。 MySQLにはあなたを助けるオプションがあります。遅いクエリをログに記録するオプションが付属しています。このようにして、データベースサーバーの実行速度が通常よりも遅い場合は、このログファイルをテキストエディターで開いて、実行速度が遅いクエリを確認できます。これを設定する方法を見てみましょう。

まず、MySQLサーバーの構成ファイル my.cnfを開きます。 。 Linuxでは、これは / etcにあるはずです。 ディレクトリ。パラメータlog-slow-queriesかどうかを確認してください すでに設定されています。そうでない場合は、次のように設定します。

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

また、クエリが遅いクエリと見なされるようになるまでの時間を設定する必要があります。 。私のサーバーでは、次のように30秒に設定しました:

long_query_time =30

MySQLサーバーを再起動してから、 mysql-slow.logを監視します ファイル。クエリの完了に30秒以上かかる場合、または my.cnfで設定したもの 、クエリはmysql-slow.logに記録されます。これで、MySQLクエリのデバッグがはるかに簡単かつ迅速になります。このファイルを時々チェックすることを忘れないでください。このファイルを数日に1回メールで送信するようにcronジョブを設定すると役立つ場合があります。


  1. MySQLクエリの「空のセット」を置き換える方法は?

    存在しないレコードを置き換えるには、MySQLのCOALESCEを使用します。 COALESCEは、NULL値を置き換えるのに役立ちます。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Code varchar(20)    -> ); Query OK, 0 rows affected (1.64 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable

  2. 通貨レコードを設定するためのMySQLクエリ

    MySQLでFORMAT()を使用して、通貨レコードを表示し、正しい形式で表示します。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Amount DECIMAL(15,4)    -> ); Query OK, 0 rows affected (0.75 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(90948484); Que