2009-11-07 41 views

回答

4

列数不是很重要。最重要的部分是,订单是否匹配和索引,以及数据库引擎是否能够识别这些数据并正确使用索引。但是,当然有一些区别。主键通常比其他索引快得多,因为其他索引之后需要进行主键查找,并且索引单个整数字段的效果要比索引字符串字段好得多。

关于如何构建数据库,有几种宗教信仰。通常,您可以通过使用整数作为主键来尽量减少数据量,但企业中的许多大型数据库在主键中使用多个字符串字段。这可能有几个原因,但表现通常不是其中之一。

+0

+1顺便说一下,您可能应该说在* clustered *索引上的排序是快速的。它并不总是聚集的主键索引。 – Andomar 2009-11-07 11:19:08

0

如果业务需求规定结果按五列进行排序,那么假设至少有一个客户端和一个服务器涉及到的唯一问题是在哪里执行排序?

所以我猜想对良好实践问题的任何答案都会有一个“取决于”的巨大剂量。

至于性能方面,如果要求进行排序,并且性能是个问题,那么再次查看是否有可能从服务器上执行排序。

1

订购5列或更多列不是良好实践的问题,而是关于业务规则:您是否需要它。如果你必须排序,然后尝试优化它。

一些常规步骤:

  1. 首先,检查执行计划目标数据库。

  2. 如果性能至少“可以忍受”,那么你就完成了。

  3. 否则:

    • 变化领域的数量在ORDER BY子句,看看它使执行计划有什么性能上的差异。它应该给你一些关于瓶颈的提示。
    • 尝试通过“适当”索引来提高性能。
    • 检查提示你的数据库有 - 也许你可以让查询分析器做更好的方法。