MySQL は、大規模なデータ処理において優れたパフォーマンスとスケーラビリティを備えた、一般的に使用されるリレーショナル データベース管理システムです。クエリは、最も頻繁に使用される操作の 1 つです。ただし、大量のデータを処理する場合、さまざまな理由でクエリの実行が遅くなり、システムのパフォーマンスに影響が出ることがあります。この場合、MySQL の低速クエリ ログを使用してクエリ パフォーマンスの問題を特定し、最適化する必要があります。この記事では、MySQL スローログクエリの基礎知識と応用方法を詳しく紹介します。
1. MySQL Query Slow Log とは
MySQL Query Slow Log は、MySQL に付属するパフォーマンス分析ツールで、指定された時間しきい値を超えるクエリ リクエストを記録するために使用されます。クエリ遅いログには、所要時間、実行数、実行計画など、各クエリのさまざまなパフォーマンス指標が記録されます。これらのメトリクスを通じて、開発者は効率を高めるためにどのクエリを最適化する必要があるかを特定し、適切なアクションを実行できます。
通常、MySQL クエリの低速ログはデフォルトでは有効になっていないため、有効にするには手動で設定する必要があります。 MySQL 構成ファイル (my.cnf) では、構成ファイルのパラメーターを設定して、クエリ低速ログを有効にすることができます。以下は、スロー ログをクエリするための設定例です:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
log_queries_not_using_indexes = 1
long_query_time = 2
このうち、slow_query_log パラメータはスロー クエリ ログを有効にするために使用され、slow_query_log_file パラメータはスロー クエリ ログ ファイルの場所を指定し、log_queries_not_using_indexes パラメータは未使用のログを記録するために使用されます。低速クエリ インデックスの情報、および long_query_time パラメータ クエリのタイムアウトを秒単位で指定するために使用されます。
2. MySQL スロー クエリ ログを有効にする方法
MySQL 5.7 以降のバージョンでは、MySQL クエリ スロー ログがデフォルトで有効になっています。 MySQL 5.6 や 5.5 などの古いバージョンの MySQL の場合、クエリスローログ機能を有効にするには手動構成が必要です。 MySQL クエリのスロー ログを有効にする詳細な手順は次のとおりです。
Linux システムでは、MySQL のデフォルトの構成ファイルは /etc にあります。 /my.cnf 。 Windows システムでは、構成ファイルは通常、C:Program FilesMySQLMySQL Servermy.ini または C:ProgramDataMySQLMySQL Servermy.ini にあります。お気に入りのエディタでファイルを開きます。
構成ファイルで次の行を見つけます:
この行をコメント アウトします。記号 # が削除され、値が 1 に変更されます。
slow_query_log = 1
次の行を見つけます:
行からコメント記号 # を削除し、ファイル パスを希望のパスに変更します。
slow_query_log_file = /var/log/mysql/mysql-slow.log
次の行を見つけます:
この行からコメント記号 # を削除し、値を目的のクエリ タイムアウトしきい値 (秒単位) に変更します。
long_query_time = 2
次の行を見つけます:
yum install percona-toolkit
次のコマンドを使用すると、pt-query-digest を使用して遅いログを解析し、クエリを実行できます。
pt-query-digest /var/log/mysql/mysql-slow.log > throw-query-analysis.out
pt-query-digest は、クエリの遅いログに関する包括的な分析レポートを提供します。最も頻繁に発生し、タイムアウトが最も長いクエリを見つけて、最適化が必要なクエリを特定できます。
MySQL クエリのスロー ログには、インデックスの使用に失敗したすべてのクエリが記録されます。この情報を使用して、どのクエリが適切なフィールドを使用しなかったかを判断できます。フィールドインデックス。クエリを高速化します。 MySQL にインデックスを追加すると、クエリのパフォーマンスを大幅に最適化できます。ただし、追加するインデックスが多すぎると、クエリ リクエストと更新操作のオーバーヘッドが増加する可能性があるため、クエリのパフォーマンスが低下する可能性があることに注意する必要があります。
スロー クエリ ログから、どのクエリを最適化する必要があるかを知ることができます。実行時間が設定されたしきい値を超えると、クエリはログ ファイルに記録されます。クエリ ステートメントを確認し、別のクエリ ステートメントを使用して実行速度を最適化することができます。
キャッシュ メカニズムにより、クエリ速度が大幅に向上します。クエリ結果がすでにキャッシュに存在する場合は、結果をキャッシュから直接返すことができるため、クエリ実行のオーバーヘッドが回避されます。キャッシュ メカニズムは、Redis や Memcached などのキャッシュ プロバイダーを使用して実装できます。
MySQL サーバーでは、さまざまなパラメーターを調整することでデータベース全体のパフォーマンスを最適化できます。これらのパラメータには、MySQL キャッシュ サイズ、接続制限、クエリ タイムアウトなどが含まれます。これらのパラメータを調整することで、データベース サービスのパフォーマンスを特定のクエリに対して最適化できます。
概要
MySQL Query Slow Log は、クエリのパフォーマンスが遅い問題を特定して解決するのに役立つ非常に便利なツールです。このツールは起動とカスタマイズが簡単で、ログに記録される情報はクエリのパフォーマンスを分析し、どのクエリを最適化する必要があるかを判断するのに役立ちます。ベスト プラクティスに従い、適切な最適化を実行すると、MySQL サーバーの全体的なパフォーマンスが向上し、大規模なデータベースの管理と維持が向上します。
以上がmysqlクエリの遅いログの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。