如何解决返回的列数是否会影响查询的速度?
你最好避免 SELECT *
- 当您更改表布局时,这会导致混乱。
- 它选择不需要的列,并且您的数据包变大。
- 这些列可以获取重复的名称,这对于某些应用程序也不是很好
- 如果您需要的所有列都被一个索引覆盖,
SELECT columns
则将仅使用该索引,而SELECT *
将需要访问表记录以获取不需要的值。也不利于性能。
解决方法
如果我有两个查询
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 *
明智的还是天真的?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。