2011-04-28 5 views
2

属性の1つで作成されたクラスタ化インデックスを持つテーブルまたは特にヒープファイルがその属性でソートされているかどうかは疑問です。ソートされたヒープファイルとクラスタ化インデックスを持つヒープファイルの違いはありますか?クラスタ化インデックスを持つテーブルのレコードは、クラスタリングキーで物理的にソートされていますか?

+0

使用するデータベースとバックエンドストアによって異なります。 (環境に関するより具体的な質問を更新すれば、より良い回答が得られるはずです)。しかし、一般にクラスタリングに使用されるキーは、物理データのレイアウトに影響します。 –

答えて

2

ソートされたヒープファイルとクラスタ化インデックスを持つヒープファイルに違いはありますか?

ソート済みヒープファイルは、順序付けされた要素を持つヒープ(配列のような構造)です。これは、MyISAMALTER TABLE … ORDER BY …またはPostgreSQLの場合はCLUSTERとなります。このようなテーブルに新しいレコードを挿入すると、その順序が破られます。

クラスタ化インデックスはB-Treeです。新しいレコードを挿入するとその順序が保持されます。

クラスタ化された表のレコードは、必ずしも物理的に順序付けされているわけではありません(クラスタリング・キーの値が高いレコードの方が、ファイルまたは表領域のオフセットが大きくなります)。あなたは別の次B-Treeリンク(またはB+Treeの場合、ページ間の直接リンク)に1枚のレコードから横切ることができるが、これはまだリンクされたページは、論理的にないので、ランダムなディスクシーク意味:

はむしろ、レコードが論理的に順序付けられています必ずディスク上にお互いの近くに存在する。

たとえば、データベースの中には、論理的な順序を維持しないものの、ページへの利点や順次アクセスのために高速な物理的な順序でインデックスを読み取ることができます(INDEX FAST FULL SCANという操作を使用)。

「クラスタ化インデックスを持つヒープファイル」はありません。テーブル構成はヒープまたはクラスタ化されています。

関連する問題