我有一个包含数百万条记录的日志表。它是一个没有索引的堆。聚集索引会使插入速度变慢吗?
提前感谢,
伊格纳西奥
除了@marc_s在评论中指出的问题(参见 Kimberly Tripp(索引女王)所说的话:"与堆相比,在集群表中插入(但仅在"正确的"集群表中)更快" - 参考),使用堆与使用聚集索引的决定很复杂,就像许多与数据库相关的事情一样, 这要看情况™。
您应该考虑要插入的数据的来源,是否对其进行排序,是否会频繁删除或更新表中的行,在与目标表中的行相关时是否需要使用参照完整性等。
简而言之,仅查看刀片速度可能无法为您提供性能的全貌。
综上所述,如果聚集索引键的定义方式与源数据的排序方式相同,那么聚集索引插入很可能比堆更快。
以下是一些基准测试,表明即使对于插入,聚集索引也更快。