所以我只是学习聚类/非聚类索引。现在我读到聚类索引是通过主键对数据进行物理排序的。
但是为什么这是必要的呢?表不是默认按ID(主键)排序的吗?因为你从记录A (ID 1)开始,然后记录B (ID 2),以此类推。它们总是排序的。为什么需要聚集索引?
表没有排序。虽然自动递增的ID是按升序发出的,但DBMS可以自由地将记录存储在磁盘上的任何位置。如果你不使用ORDER BY
子句来查询表数据,你可能会得到任何旧顺序的行。
ID上的索引可以用来快速查找这些行。在索引中查找ID非常快,索引会告诉您从表中读取哪一行。
如果您的表都是通过ID快速查找一行,这是典型的查找表,例如包含所有国家名称的表,您可以将其改为集群索引。
"集群index"这意味着整个表数据都在索引结构中,所以不是先搜索索引,然后再找到表行,而是直接得到行。在我看来,甲骨文已经为这个问题取了一个更好的名字;他们称之为"索引组织表"。