许多帖子如this stackoverflow link声称PostgreSQL中没有聚集索引的概念。但是,the PostgreSQL documentation包含类似的内容。一些人声称它类似于SQL Server中的聚簇索引。
你知道这两者之间的确切区别是什么吗?
答案 0 :(得分:8)
聚簇索引或索引组织表是一种数据结构,其中所有表数据按索引顺序组织,通常通过在B树结构中组织表
一旦表格如此组织,订单将由所有未来的数据修改自动维护。
PostgreSQL没有这样的聚类索引。 CLUSTER
命令执行的操作是按索引的顺序重写表,但该表仍然是数据的基本无序堆,因此将来的数据修改将不会维护该索引顺序。 / p>
如果您希望在对表格进行数据修改时保持近似索引顺序,则必须定期CLUSTER
一个PostgreSQL表。
PostgreSQL中的群集可以提高性能,因为在索引扫描期间找到的元组将在堆表中靠近,这可以将对堆的随机访问转换为更快的顺序访问。