根据这个帖子选择列数是否影响linq查询的效率?
Does the number of columns returned affect the speed of a query?
我们应该避免Select *
为SQL
这是否适用于也LINQ查询?
编辑:
从Select *
对LINQ我的意思是
from a in mytable select a;
并从选定列我的意思是
from a in mytable select new{a.Prop1, a.Prop2};
根据这个帖子选择列数是否影响linq查询的效率?
Does the number of columns returned affect the speed of a query?
我们应该避免Select *
为SQL
这是否适用于也LINQ查询?
编辑:
从Select *
对LINQ我的意思是
from a in mytable select a;
并从选定列我的意思是
from a in mytable select new{a.Prop1, a.Prop2};
LINQ查询中,如果对数据集或集合做发生记忆。由于DB将数据存储在硬盘驱动器中,因此影响不如数据库级别。
因为你的RAM比你的硬盘快,所以性能并不明显。但是将它应用到LINQ还是个不错的主意
你不能用LINQ做SELECT *
。生成的查询始终具有要选择的所有列名称。因此,为了确定该表的列,不会因阅读表定义而造成延迟。但是,从磁盘读取所有列数据并通过网络发送数据会有延迟。所以,如果你只需要在表中的多个列,那么最好只选择那些列:
var query = from p in db.Person
select new { p.Id, p.Forename, p.Surname };
备注:使用LINQ到对象(内存中查询)你有相反的情况 - 你已经有对象在内存。选择一组属性比较慢,因为应该创建匿名对象,并且它的属性应该被映射。但是这个操作不使用硬盘或网络,所以延迟是微不足道的。
他意味着选择所有列而不是所需的列。 –
这就是我所问的 –
OP不会向Linq询问对象只有 –