列的顺序可能会对性能产生轻微影响,但它与数据类型无关。
列顺序重要的一些示例:
- 如果您首先放置更频繁查询的列,那么您将节省Oracle时间逐字段查找已获取的行。 (Oracle从头开始 - 所以如果你查询表中的第一列,它就会找到它并停止。如果查询表中的最后一列,它会查看所有这些列。)
- 如果您首先放置更频繁查询的列,如果一行被分成两个块(即链接),您有时会避免第二个I / O.较早的列更可能位于原始块中,后面的列更可能位于链接块中。
- 如果将所有通常为NULL的列放在最后,Oracle可以通过不为尾随的NULL列存储占位符来节省一些空间。相反,它可以只写入行尾标记,并假设所有后面的列都是NULL。如果最后放置一个NOT NULL列,Oracle就不能这样做。
醇>
所有人都说......性能影响通常可以忽略不计并且通常由于SQL不良,索引不良,群集错误,不使用绑定变量等导致的性能问题而相形见绌。
按照对您有意义的顺序将列放在表中。
如果您以后发现可证明的性能影响(这种情况很少见!),您可以稍后对其进行重组。
在设计性能时还有一百万个其他注意事项。这不是其中之一。