例如,假设我在表X中有A,B,C列。如果我使用查询“从X选择A,B”,那么该查询会比我删除C列并只是执行“选择”慢一些。 *来自X“
答案 0 :(得分:3)
在单个表上选择所有行的查询的性能在很大程度上取决于I / O成本。 I / O成本又取决于查询读取的数据页数。
通常,增加一列会增加行的大小。较少的行适合较少的页面,因此查询可能会快一点。
现在警告。这里是一些:
C
是始终为NULL
的varchar,则不会占用额外的空间。C
是varchar(max)
(或很大),它可能存储在单独的数据页上。(A, B)
存在(以任一顺序),则查询应使用该索引。由于索引涵盖了查询,因此数据页的数量无关紧要。我不会倾向于简单地删除列以加快此类查询的速度,除非不使用这些列。速度的增加(如果有的话)可能很小。但是在某些情况下,从性能的角度来看这是个好主意。