SQL Server - Does column order matter?在性能和优化方面:
在SQL Server 2005中,可为空的可变长度列的放置会对空间产生影响-在定义的末尾放置可为空的可变大小列可以减少空间消耗。 SQL Server 2008添加了" SPARSE"列功能,可以消除这种差异。 看这里。 对于第四个项目符号:否,您无法指定要在何处添加该列。这是ALTER TABLE的语法:https://msdn.microsoft.com/en-us/library/ms190273.aspx 在MySQL中,它们提供了ALTER TABLE ADD ... AFTER ...之后的功能,但这在T-SQL中没有出现。 如果要重新排序列,则必须重建表。 编辑:对于最后一个最后一个要点,您将不得不删除表并重新创建它以对列进行重新排序。一些操作SQL数据库的图形工具会为您完成此操作,并使您看起来好像在对列进行重新排序,因此您可能需要调查一下。 我会说所有这些问题的答案都是"否",尽管我在MS-SQL方面的经验可以追溯到SQL2000。在SQL2005中可能会有所不同 前3个为否,因为索引将保存数据,后3个也不为 创建表时列顺序无关紧要。我们可以在从数据库中检索数据时排列列。主键可以设置为任何列或列的组合。 对于第一个项目符号:
是的,至少在使用不推荐使用的BLOB 在这种情况下,您应该将这些列放在表的"末尾",并且每次检索时都会对性能造成影响。 如果您使用DAL从此类表中检索数据,那么这是延迟加载模式的理想之地。 |