情况1:我有一个包含30列的表,我在where子句中使用4列进行查询.
情况2:我有一个包含6列的表,我在where子句中使用4列进行查询.
两种情况下的表现有何不同?
例如我有桌子
table A
{
b varchar(10),
c varchar(10),
d varchar(10),
e varchar(10),
f varchar(10),
g varchar(10),
h varchar(10)
}
SELECT b,c,d
FROM A
WHERE f='foo'
create table B
{
b varchar(10),
c varchar(10),
d varchar(10),
e varchar(10),
f varchar(10)
}
SELECT b,c,d
FROM B
WHERE f='foo'
Run Code Online (Sandbox Code Playgroud)
A和B表具有相同的结构意味着在条件也相同且列中的列也相同时使用的列数和列数的差异.不同之处在于表B只有一些未使用的列,这些列未在select中使用,在这种情况下,两种查询的性能有何不同?
如果我有两个问题
SELECT Id, Forename, Surname
FROM Person
WHERE PersonName Like(‘%frank%’)
Run Code Online (Sandbox Code Playgroud)
和
SELECT *
FROM Person
WHERE PersonName Like(‘%frank%’)
Run Code Online (Sandbox Code Playgroud)
哪个查询运行得更快?where子句/表是加入最大因子还是返回的列数?
我问,因为我正在构建一系列映射到数据库表的对象.通常,每个对象至少具有以下三种方法:
Select - 选择一切
List - 选择足够的可用于填充下拉列表
Search - 选择结果中可查看的所有内容,通常约为6列.
如果每个查询返回完全相同的列集,则代码的维护和测试应该更加简单.在任何给定的表中,数据库不可能超过50,000行,因此如果性能差异很小,那么我将节省开发时间.如果表演会在场上摔倒,那么我将从不同角度进行表演.
那么,为了便于开发,是SELECT *明智的还是天真的?