全表スキャンとは何ですか?

全表スキャンは、データベースをスキャンする最も遅い方法ですが、最も徹底的な方法の1つです。 このスキャン方法が非常に遅いのは、データベースがすべての行を読み取り、1つ以上の列が管理者によって課されたクエリまたは条件に対して有効かどうかを確認するためです。 全表スキャンの最も一般的なトリガーは、データベースに、クエリを起動できるインデックス行が含まれていないことです。 通常、1行を検索する場合は手動でテーブルをスキャンする方が適切ですが、さらに多くを検索する場合や大きなテーブルを検索する場合は、全テーブルスキャンの方が適切に機能します。

データベースには、テーブルを調べて情報を見つけたり、テーブルをチェックして条件を満たしていることを確認するスキャン機能が備わっています。 完全なテーブルスキャンは、条件に一致する行が見つかった場合でも、残りの行をスキャンし続けるため、最も徹底的なスキャンです。 この関数は高価です。つまり、スキャンは各行の読み取りと書き込みを行い、行を完全にチェックするために複数のシークを実行するため、大量のメモリを使用します。 クエリまたは関数が実行されるが、データベースがクエリを実行するためのインデックスを認識しない場合、完全スキャンが必要です。

インデックスは、管理者の好みに応じてテーブルに関する情報にインデックスを付けるテーブル内の列です。 たとえば、管理者が名前に関する情報のインデックスを作成する場合、インデックス列には各名前の位置が記録されます。 これにより、管理者とデータベースの両方が、データベースの奥深くに隠された情報を見つけることができます。 テーブルにインデックスが存在しない場合、通常、クエリの実行を許可するために全テーブルスキャンが自動的に開始されます。

完全なテーブルスキャンに大量のメモリが割り当てられているため、完全なスキャンが非常に遅くなるほど徹底しています。 管理者がクエリに1行または数行だけを必要とする場合、通常、小さなインデックスを作成する方が迅速です。 これは事実ですが、クエリが大きい場合、フルスキャンは実際に高速に動作する場合があります。 管理者がデータベース全体の5%以上に影響するクエリを作成している場合、通常、フルスキャンは管理者が同じことを手動で行うよりも速く機能を実行できます。

管理者は多くの場合、テーブルのクイックスキャンを実行する「EXPLAIN PLAN」機能を使用します。 これにより、クエリにインデックスが必要かどうかが管理者に示されます。 結果を取得することにより、管理者は、クエリをそのまま実行できるか、インデックスを作成または検索する必要があるか、または全表スキャンの実行が効率的かどうかを知ることができます。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?