【发布时间】:2009-05-12 12:43:37
【问题描述】:
如果我有两个查询
SELECT Id, Forename, Surname
FROM Person
WHERE PersonName Like(‘%frank%’)
和
SELECT *
FROM Person
WHERE PersonName Like(‘%frank%’)
哪个查询会运行得更快?是where子句/表加入最大的因素,还是返回的列数?
我之所以这么问,是因为我正在构建一系列映射到数据库表的对象。通常每个对象都至少有这三种方法:
Select – 选择所有内容
List - 选择足够多的可用于填充下拉列表
Search – 选择结果中可见的所有内容,通常大约 6 列左右。
如果每个查询都返回完全相同的列集,则代码的维护和测试应该更简单。数据库不太可能在任何给定表中超过 50,000 行,因此如果性能差异很小,那么我将节省开发时间。如果性能要跌到地板上,那我会换个角度工作。
那么,为了便于开发,SELECT * 是明智的,还是幼稚的?
【问题讨论】:
-
一点语法:影响查询的速度。
-
外交政策可以影响一些事情,但一些列不能
-
@Quassnoi:可爱,但我还是对的 ;) 他不是想影响速度,而是影响它。 @Andomar:这不是基本上重复Quassnoi的评论,而不影响新知识吗?
标签: sql performance