SQLでの索引の使用とORDER BY句の使用の違いは何ですか?SQLの索引とORDER BY句
私は理解しているので、インデックスは、クエリエンジンがテーブルをすばやく調べて(テーブルスキャンを防止するのに役立つ)順序付けられた方法で指定された列を並べ替えます。
私の質問 - パフォーマンスを向上させるためにクエリエンジンが単にORDER BY
を使用できないのはなぜですか?
ありがとうございます!
SQLでの索引の使用とORDER BY句の使用の違いは何ですか?SQLの索引とORDER BY句
私は理解しているので、インデックスは、クエリエンジンがテーブルをすばやく調べて(テーブルスキャンを防止するのに役立つ)順序付けられた方法で指定された列を並べ替えます。
私の質問 - パフォーマンスを向上させるためにクエリエンジンが単にORDER BY
を使用できないのはなぜですか?
ありがとうございます!
タグをsql-server-2008として配置しますが、質問はSQLサーバーとは関係ありません。この質問はすべてのデータベースに適用されます。ウィキペディアから :
インデックスは、いくつかのストレージエンジンが データベースのパフォーマンスを向上させるために使用テクニックです。 プロパティを共有する多くの種類のインデックスは、 クエリを実行するときにすべてのエントリを調べる必要性を軽減します。大規模なデータベースでは、クエリの時間/コストは、 の規模で減少する可能性があります。インデックスの最も単純な形式は、値が の並べ替えられたリストです。これは、ブックの背後のインデックスに類似した、エントリの場所への隣接参照を持つバイナリ検索を使用して検索できます。同じデータに複数の索引を作成できます(従業員データベースは姓と雇用日で索引付けできます)。
SQLの世界ではStackExchange
の関連スレッドから、順序は、データのセットの固有の特性ではありません。 したがって、 ORDER BY句を使用してデータを照会する場合を除き、データが の順番に、または一貫した順序で返されることは、RDBMSから保証されません。
インデックスが必要な理由は何ですか?
2つの非常に異なるものです。正しく順序づけられたインデックスは、クエリが実行されるたびに注文を処理する必要がないので、オーダーで使用することができます。 – TZHX
Ok、あなたは2つの非常に異なるものだと言いますか? 意味 - ORDER BY - クエリ データを格納するインデックス方法。 これが正しければ、私は今なぜこの投稿が間違っているのか分かりました。 – mal