ホームページ >データベース >mysql チュートリアル >MySQL ビュー クエリでインデックスを活用してパフォーマンスを向上するにはどうすればよいですか?

MySQL ビュー クエリでインデックスを活用してパフォーマンスを向上するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-10 10:32:02397ブラウズ

How can I leverage indexes in MySQL view queries to improve performance?

MySQL ビュー クエリでのインデックスの使用

問題:

パフォーマンスの問題が発生していますMySQL ビューでは、基になるテーブルのインデックスがビューベースでは使用されないため、 queries.

原因:

MySQL は、フィルター述語 (例: WHERE happens_in = 2006) を外部クエリからビュー クエリにプッシュしません。代わりに、ビューの結果を中間一時テーブルとして実体化し、述語をこのテーブルに適用します。その結果、元のテーブルのインデックスを効果的に使用できなくなります。

解決策:

ビュー クエリでインデックスを利用するには、適切なインデックスを作成する必要があります。ビュークエリで使用されます。この場合、ビュー クエリで参照されるすべての列を含むカバー インデックスが推奨されます。

最適なインデックス:

CREATE INDEX highscores_IX3 ON highscores (player, happens_in,スコア)

その理由動作:

  • 等号述語 WHERE player = 24 のため、player 列は先頭の列として使用されます。
  • happen_in 列は、 GROUP BY happens_in.
  • スコア列を含めることでインデックスがカバーインデックスになり、MySQL が次の要件を満たすことができるようになります。データ ページにアクセスせずにインデックス ページからクエリを実行します。

追加の考慮事項:

  • ビュー クエリの実行プランをスタンドアロン クエリと比較できます。ビューを使用せずにクエリを実行して、パフォーマンスの違いを確認します。
  • MySQL でビューを使用することは必ずしも有害ではありませんが、理解することが重要です。パフォーマンスの問題を回避するために、MySQL がビュー クエリを処理する方法。

以上がMySQL ビュー クエリでインデックスを活用してパフォーマンスを向上するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。