DBMSでのハッシュ(拡張可能、線形)およびDBMSでのインデックス作成(スパース、デンス、セカンダリキーに基づくインデックスなど)について学習しましたが、ハッシュとインデックス作成の違いを理解できません。これらの2つの手法は一緒に使用されますか、それともどちらかのみが使用されますか?両方の手法の目的は、データをすばやく取得できるようにすることであるため、どちらかで十分だと思います。
誰でも違いを明確にできますか?
インデックス付けとは何ですか?
インデックス付けは、複数のフィールドで多数のレコードをソートする方法です。テーブルのフィールドにインデックスを作成すると、フィールド値を保持する別のデータ構造と、関連するレコードへのポインターが作成されます。このインデックス構造はソートされ、バイナリ検索を実行できるようになります。
ハッシュとは何ですか?
ハッシュとは、文字列を、通常は短い固定長の値または元の文字列を表すキーに変換することです。ハッシュは、元の値を使用してアイテムを検索するよりも短いハッシュキーを使用してアイテムを検索する方が速いため、データベース内のアイテムのインデックス作成と取得に使用されます。
これはあなたの疑問をクリアするかもしれないと思います。
ハッシュは一種のインデックスです。キーに基づいてレコードを見つけるために使用できますが、レコードの順序は保持しません。ハッシュに基づいて、後続の要素または前の要素を反復することはできません。ただし、これはインデックスの機能です(データベースのコンテキストで)。
ハッシュは高度な検索手法です。つまり、大きなデータは小さなデータ項目になり、テーブルに保存されます。ただし、インデックス付けとバイナリ検索は、線形の方法で検索されます。また、インデックス付けは、複数のフィールドの組み合わせにインデックス(キー)を作成するために使用されます