1. スロークエリとは何ですか?
MySQL が SQL クエリ ステートメントを実行するのにかかる時間が特定のしきい値を超えると、クエリは低速クエリとしてマークされます。遅いクエリは通常、1 秒以上かかるクエリとして定義されますが、このしきい値は状況に応じて調整できます。
クエリの遅延は、通常、次の理由によって発生します。
SQL クエリ ステートメント自体が十分に最適化されていません。
データベース内のインデックスが十分に完成していません。
log-slow-queries = /var/log/mysql/mysql-slow.log long_query_time = 1その中に、log-slow-queriesパラメータは低速クエリを指定するために使用されます。ログ ファイルのパスとファイル名は、long_query_time パラメータを使用してクエリ時間のしきい値を秒単位で指定します。 1 秒以上かかるすべてのクエリは、スロー クエリ ログ ファイルに記録されます。 新しい設定を有効にするには、これら 2 つのパラメータを追加した後に MySQL サービスを再起動する必要があります。 CentOS オペレーティング システムでは、次のコマンドを使用して MySQL サービスを再起動できます:
systemctl restart mysqldもちろん、このコマンドもシステムによって異なる場合があります。特定の状況に応じて調整してください。 3. スロークエリログを分析するにはどうすればよいですか? スロー クエリの問題を発見して対処するには、スロー クエリ ログを定期的に確認する必要があります。その前に、スロー クエリ ログを有効にする必要があります。 MySQL に付属の mysqldumpslow ツールを使用して、遅いクエリのログを分析できます。このツールは複数の並べ替え方法をサポートしており、遅いクエリの原因を簡単に見つけることができます。 一般的に使用されるいくつかのコマンドを次に示します:
# 按查询次数从大到小排序 mysqldumpslow -s c /var/log/mysql/mysql-slow.log # 按查询时间从大到小排序 mysqldumpslow -s t /var/log/mysql/mysql-slow.log # 按查询锁定的行数从大到小排序 mysqldumpslow -s l /var/log/mysql/mysql-slow.logこれらのコマンドを使用する前に、スロー クエリ ログ ファイルにアクセスする権限があることを確認する必要があります。スロークエリログファイルは通常、パス /var/log/mysql/mysql-slow.log に保存されます。 スロークエリログの分析は簡単な作業ではなく、一定の経験とスキルが必要です。通常、最適化の方向性を見つけるために、クエリの実行時間、クエリの数、クエリ内のロックされた行の数などの複数の側面に基づいてスロー クエリのログを分析します。 4.遅いクエリを最適化するにはどうすればよいですか? スロークエリログを分析した後、分析結果に基づいて最適化計画を提案する必要があります。一般的な最適化ソリューションをいくつか次に示します。
以上がmysqlのスロークエリを有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。