web-dev-qa-db-ja.com

ハッシュとインデックス作成の違いは何ですか?

DBMSでのハッシュ(拡張可能、線形)およびDBMSでのインデックス作成(スパース、デンス、セカンダリキーに基づくインデックスなど)について学習しましたが、ハッシュとインデックス作成の違いを理解できません。これらの2つの手法は一緒に使用されますか、それともどちらかのみが使用されますか?両方の手法の目的は、データをすばやく取得できるようにすることであるため、どちらかで十分だと思います。

誰でも違いを明確にできますか?

25
user1543957

インデックス付けとは何ですか?

インデックス付けは、複数のフィールドで多数のレコードをソートする方法です。テーブルのフィールドにインデックスを作成すると、フィールド値を保持する別のデータ構造と、関連するレコードへのポインターが作成されます。このインデックス構造はソートされ、バイナリ検索を実行できるようになります。

ハッシュとは何ですか?

ハッシュとは、文字列を、通常は短い固定長の値または元の文字列を表すキーに変換することです。ハッシュは、元の値を使用してアイテムを検索するよりも短いハッシュキーを使用してアイテムを検索する方が速いため、データベース内のアイテムのインデックス作成と取得に使用されます。

これはあなたの疑問をクリアするかもしれないと思います。

22
Heena Hussain

ハッシュは一種のインデックスです。キーに基づいてレコードを見つけるために使用できますが、レコードの順序は保持しません。ハッシュに基づいて、後続の要素または前の要素を反復することはできません。ただし、これはインデックスの機能です(データベースのコンテキストで)。

14
Aki Suihkonen
  • ハッシュは、個別の値が個別のアドレスにハッシュされることを保証しません。
  • 衝突はハッシュにあります。
  • ハッシュによりオーバーフローが発生します。
  • データを検索し、DBファイルからデータを読み取るためにインデックス構造にアクセスする必要はありません。
  • インデックス作成を定義するコマンドがありますが、ハッシュ用ではありません。
2
Vishnu Maru

ハッシュは高度な検索手法です。つまり、大きなデータは小さなデータ項目になり、テーブルに保存されます。ただし、インデックス付けとバイナリ検索は、線形の方法で検索されます。また、インデックス付けは、複数のフィールドの組み合わせにインデックス(キー)を作成するために使用されます

0
RAviRaaJA