ヒープテーブル
クラスタ化インデックスを持たないテーブル。行はどのキーでも整列されず、空きのある場所に置かれる。PostgreSQLは常にこの方式(「ヒープ」)で格納し、SQL Serverではクラスタ化インデックスを追加するまでヒープである。
仕組み:新しい行は空き領域のある場所に入り、各行には物理的な識別子(PostgreSQLではctid、SQL ServerではRID)が付き、インデックスはそれを指す。利点は挿入が速いこと(維持すべき順序がない)。代償は、データが整列していないため範囲スキャンにインデックスと参照が必要になること、そして削除された行が「穴」を残して断片化・肥大化を招くことである(PostgreSQLではVACUUMが片付ける)。SQL Serverでは、たいていの用途でヒープよりクラスタ化インデックスのほうが良いとされる。PostgreSQLではヒープが標準で、順序はインデックスが与え、CLUSTERは一度だけ並べ替える(維持はされない)。ヒープとクラスタ化の違いを理解することは、データが実際にディスク上でどう置かれているかを理解することに等しい。