ホームページ > データベース > mysql チュートリアル > インデックスがあるにもかかわらず、MySQL クエリが非常に遅いのはなぜですか?

インデックスがあるにもかかわらず、MySQL クエリが非常に遅いのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-19 14:59:02
オリジナル
342 人が閲覧しました

Why is My MySQL Query So Slow, Even with an Index?

MySQL ステートメントの実行時間が過剰です

約 100 万レコードを含む大規模なデータベースでクエリを実行しようとしたときに、実行時間が長くなることが発生しました。具体的には、「評価」テーブルからレコードを取得するクエリが特に遅かったです:

select * from `ratings` order by id limit 499500, 500
ログイン後にコピー

「id」列にインデックスを使用しているにもかかわらず、問題は解決しませんでした。ただし、テーブル サイズを 10,000 レコードに削減すると、クエリ時間が大幅に短縮されました。

説明:

「EXPLAIN」ステートメントを使用してクエリ プランを調べたところ、元のクエリではフル テーブル スキャンが使用されており、実行が非効率になっていたことが明らかになりました。対照的に、「where」句を追加すると、より効率的な範囲インデックス スキャンが利用され、パフォーマンスが大幅に向上しました。

select * from `ratings` where id>=499501 limit 500
ログイン後にコピー

考慮事項:

結果をフィルタリングするための「where」句は、適切なインデックスを利用することでクエリのパフォーマンスを大幅に向上させることができます。

データベース内でデッドロックが発生していないことを確認することが重要であり、これによりクエリの実行が遅くなる可能性もあります。

以上がインデックスがあるにもかかわらず、MySQL クエリが非常に遅いのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート