代码之家  ›  专栏  ›  技术社区  ›  Anil Soman

多重聚类指数效应

  •  0
  • Anil Soman  · 技术社区  · 15 年前

    理论上,在一个表中,我们只能有一个聚类索引。但是如果表中的datetime列显示“From date”和“To date”,会怎么样?WHERE子句中经常需要这些列来填充应用程序中的报告。如果我在同一个表的主键上也需要一个聚类索引,那么如何在其他列上利用聚类索引呢?在这种情况下,对于较大的记录,我的查询仍然会运行得较慢。

    5 回复  |  直到 15 年前
        1
  •  2
  •   marc_s MisterSmith    15 年前

    实际上,表上也可以只有一个聚集索引,因为表的数据在物理上是由该聚集索引排序的。

    covering index .

    在查询性能方面,一个好的覆盖非聚集索引和聚集索引之间并没有太大的区别。

    但是,您不想使聚集索引膨胀,因为这些列也将添加到同一个表上的所有非聚集索引中—保持较小,最好是INT,不断增加,稳定(不变),这样就可以了。

        2
  •  1
  •   Pondlife    15 年前

        3
  •  0
  •   Peter G.    15 年前

    如果您需要为同一个表的多个索引提供集群索引表的性能,那么我看到的唯一路由就是为每个集群索引保存一个表的副本。

        4
  •  0
  •   marr75    15 年前

    聚集索引影响表中数据的物理存储,因此根据定义只能有一个。您可以扩展聚集索引以包含其他列,但这有其自身的缺点。

    聚集索引的性能优势在于,记录以反映索引的方式存储(这就是为什么对聚集索引的随机插入和更新会很快将表分割开来),因此基于此索引的查询性能可以与从存储设备读取的性能一样好,但这是无法实现的在其他索引上。

        5
  •  0
  •   Bob Jarvis - Слава Україні    15 年前

    分享和享受。