打印本文 打印本文 关闭窗口 关闭窗口
SQLSERVER海量数据库的查询优化及分页算法
作者:武汉SEO闵涛  文章来源:敏韬网  点击数52419  更新时间:2007/11/14 12:58:59  文章录入:mintao  责任编辑:mintao
这两个联系不是很大的论题放在一起,就是因为二者都需要一个非常重要的东西――聚集索引。

  在前面的讨论中我们已经提到了,聚集索引有两个最大的优势:

  1、以最快的速度缩小查询范围。

  2、以最快的速度进行字段排序。

  第1条多用在查询优化时,而第2条多用在进行分页时的数据排序。

  而聚集索引在每个表内又只能建立一个,这使得聚集索引显得更加的重要。聚集索引的挑选可以说是实现查询优化高效分页的最关键因素。

  但要既使聚集索引列既符合查询列的需要,又符合排序列的需要,这通常是一个矛盾。

  笔者前面索引的讨论中,将fariqi,即用户发文日期作为了聚集索引的起始列,日期的精确度为。这种作法的优点,前面已经提到了,在进行划时间段的快速查询中,比用ID主键列有很大的优势。

  但在分页时,由于这个聚集索引列存在着重复记录,所以无法使用maxmin来最为分页的参照物,进而无法实现更为高效的排序。而如果将ID主键列作为聚集索引,那么聚集索引除了用以排序之外,没有任何用处,实际上是浪费了聚集索引这个宝贵的资源。

   为解决这个矛盾,笔者后来又添加了一个日期列,其默认值为getdate()。用户在写入记录时,这个列自动写入当时的时间,时间精确到毫秒。即使这样,为了避免可能性很小的重合,还要在此列上创建UNIQUE

 << 上一页  [31] [32] [33] [34] [35] [36] [37] [38]  下一页

打印本文 打印本文 关闭窗口 关闭窗口