ホームページ  >  記事  >  データベース  >  MySQL の低速ログ クエリの詳細については、こちらをご覧ください。

MySQL の低速ログ クエリの詳細については、こちらをご覧ください。

WBOY
WBOY転載
2022-04-02 13:10:352783ブラウズ

この記事では、mysql に関する関連知識を提供し、主に遅いログ クエリの関連問題を紹介し、SQL の特定の実行時間やその他の関連コンテンツを表示するためのプロファイルの表示も含まれています。みんなに。

MySQL の低速ログ クエリの詳細については、こちらをご覧ください。

推奨学習: mysql ビデオ チュートリアル

1. スロー クエリ ログの概念

SQL の場合インデックスの最適化の問題については、Explain を使用して SQL ステートメントを分析します。しかし、実際のエンタープライズレベルのプロジェクトには何千もの SQL ステートメントが含まれており、それらを 1 つずつゼロから分析することは不可能です。実行時間が長く、パフォーマンスを消費する SQL はどこで入手できるのでしょうか? ?

スロークエリログを開くことができます:

特定のビジネスと同時実行性に基づいて時間制限 (20 ミリ秒、100 ミリ秒) を見積もり、設定した後にビジネスを開始します。ストレス テストの後、スロー クエリ ログを開くと、実行時間を超過した SQL が表示されます。その後、Explain を使用して、これらの時間のかかる SQL ステートメントを分析します。

手順は次のとおりです:

  • スロー クエリ ログ スイッチを開く

    slow_query_log

  • ビジネスに受け入れられる適切なスロー クエリ時間制限を設定します

  • ストレス テストの実行 さまざまなビジネス

  • スロー クエリ ログを確認し、実行に時間がかかるすべての SQL ステートメントを確認します

  • Explain を使用して、これらの時間のかかる SQL ステートメントを分析し、ターゲットを絞った最適化を行います。

MySQL では、低速なクエリ ログを設定できます。SQL の実行時間が私たちの時間を超えると、設定すると、これらの SQL はスロー クエリ ログに記録され、ログを確認し、Explain を使用してこれらの SQL の実行計画を分析し、効率が低い原因を特定します。インデックスが使用されていないためですか?それともインデックスの作成自体に問題があるのでしょうか?または、インデックスを使用していますが、テーブル内のデータ量が多すぎるため時間がかかります。このとき、テーブルを複数の小さなテーブルに分割するなどの方法があります。

スロークエリログに関連するパラメータは次のとおりです:

(MySQL によって定義された多くのグローバル スイッチはグローバル変数に保存されており、
show/set variables またはグローバル変数の値を設定します)

MySQL の低速ログ クエリの詳細については、こちらをご覧ください。 スロー クエリ ログ スイッチはデフォルトでオフになります
スロー クエリ ログのパス: デフォルトは
/var/lib /mysql/

スロークエリログには、実行時間がパラメータlong_query_time(単位:秒)で設定した値を超えたすべてのSQL文を含むログが記録され、MySQLのコマンドで表示できます。次のように:

MySQL の低速ログ クエリの詳細については、こちらをご覧ください。 この値は変更できます:

MySQL の低速ログ クエリの詳細については、こちらをご覧ください。

2. 低速クエリ ログの実践

1. スロー クエリ ログ スイッチをオンにする throw_query_log

MySQL の低速ログ クエリの詳細については、こちらをご覧ください。

スロー クエリ ログ スイッチをオンにすると、slow_query_log がグローバル変数であることを示すエラー メッセージが表示されます (また、現在のセッションにのみ影響する変数もあります (long_query_time、profiling など)。変更はすべてのセッション、つまり現在の MySQL サーバーにアクセスしているすべてのクライアントに影響します。


MySQL の低速ログ クエリの詳細については、こちらをご覧ください。 低速クエリ ログのスイッチをオンにすることに成功しました。

#2. 合理的でビジネス上許容される遅いクエリ時間の上限を設定するlong_query_time

別のセッションを表示MySQL の低速ログ クエリの詳細については、こちらをご覧ください。

# デフォルト値は依然として 10 秒であることが判明したため、long_query_time は現在のセッションにのみ影響します

MySQL の低速ログ クエリの詳細については、こちらをご覧ください。
3. さまざまなサービスを実行するためのストレス テスト

設定したlong_query_time=0.1秒をすでに超えています

MySQL の低速ログ クエリの詳細については、こちらをご覧ください。
4。スロークエリログを確認してください

パス: /var/lib/mysql/


MySQL の低速ログ クエリの詳細については、こちらをご覧ください。

5. Explain を使用して、これらの時間のかかる SQL ステートメントを分析し、それに応じて最適化します。

MySQL の低速ログ クエリの詳細については、こちらをご覧ください。
テーブル全体を検索し、主キー インデックス ツリー全体をスキャンしました。それをまた。

パスワードにインデックスを追加する必要がありますが、型変換が関係する場合、インデックスは使用できないため、パスワードは文字列形式であることに注意してください。

3. 表示するプロファイルを表示するSQL の具体的な実行時間

MySQL は通常、小数点第 2 位までの時間のみを表示します
MySQL の低速ログ クエリの詳細については、こちらをご覧ください。
プロファイリング スイッチをオンにすると、より詳細な時間を表示できます

MySQL の低速ログ クエリの詳細については、こちらをご覧ください。
エラーは報告されず、プロファイリング変数が現在のセッションにのみ影響することを示します

MySQL の低速ログ クエリの詳細については、こちらをご覧ください。

推奨学習: mysql ビデオ チュートリアル

以上がMySQL の低速ログ クエリの詳細については、こちらをご覧ください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。