如果我有两个查询
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 *
是明智的还是天真的?
最佳答案
你最好避免SELECT *
SELECT columns
将仅使用此索引,而SELECT *
将需要访问表记录以获取不需要的值。也不利于性能。 关于sql - 返回的列数是否会影响查询的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/852572/