スロークエリの最適化をのmysql

まず、低速のクエリは何ですか 

MySQLのスロークエリ、完全な名前は、MySQLが提供するログです、応答時間は、MySQLでのステートメントを記録するために使用されるしきい値を超えスロークエリログです。特定の環境で、より多くのため実行しているlong_query_timeSQL文の値、それはスロークエリログに記録されます。簡単に言えば、長い時間SQL文の実行されています

第二に、どのように最適化するために、

  1は、状況はインデックス動作しませんでした
        最初の文字マッチした文字列は「%」であれば、LIKEキーワードクエリを使用してクエリのキーワードクエリLIKE 1.1を、インデックスが動作しません。唯一の「%」は、第1の位置インデックスに動作しますではありません。

        1.2マルチカラムインデックスのクエリMySQLは複数のフィールドにインデックスを作成することができます。インデックスには、最大16個のフィールドを含むことができます。マルチカラムインデックスの場合は、最初のフィールドでこれらのフィールドを使用した唯一のクエリは、インデックスが使用されます。

 

   2は、データベースの構造を最適化
            するだけでなく、データベースが少ないディスクスペースを取ることができる合理的なデータベース構造を、より速くクエリを行うことができます。データベース構造の設計は、あなたはデータの冗長性、スピードのクエリを考慮し、合理的かつ他の多くのコンテンツがあり、フィールドのデータ型を更新する必要があります。

    2.1複数のテーブルにテーブル番号フィールド 

            テーブルのフィールドの詳細については、使用頻度が低い一部のフィールドでは、これらのフィールドは、新しいテーブルを形成するために分離することができます。データテーブルが大きい場合ので、用途の低周波数の存在に起因は鈍化しました。

    2.2中間テーブルを増やし

            テーブルが頻繁にユニオンクエリを必要とするために、クエリのパフォーマンスを向上させるために中間テーブルを作成することができます。テーブルの中央を確立することにより、データを挿入するクエリのパフォーマンスを向上させるために、テーブルの中央に頻繁に関節問い​​合わせ、次いでテーブルの関節中央にクエリに元のクエリを必要とします。

   クエリの分解に関連した3、

      複数の小さなクエリに大きなクエリが必要です。

      多くの高性能アプリケーションは、リレーショナルクエリに分解するクエリは、単一のテーブルであってもよく、アプリケーションにクエリ結果を関連付ける、多くのシーンが各テーブルに、より効率的であるです。

 

 

  図4に示すように、内側右/代替左に参加参加参加
       内部Bへの参加が、注文が実際に書き込みのない半ダイム順序で実行され、最終的な実装もBに接続することができる:内部のような、2つのテーブルを参加が、順序は死んで固定されていません。インデックス付きフィールド上の条件ならば、インデックスも上使用することができます。自分(クエリオプティマイザ)のためにmysqlの裁判官をしてみましょう。注文やインデックステーブルを使用して、特定の状況に参加し、mysqlのクエリオプティマイザのコスト評価は、それぞれの場合に行われる、実施計画の最良として最終的な選択。

参考ます。https://blog.csdn.net/qq_35571554/article/details/82800463



 

おすすめ

転載: www.cnblogs.com/51python/p/11483039.html