【发布时间】:2012-05-15 01:53:57
【问题描述】:
我最近遇到了几种需要来自同一个表的不同数据的情况。一个例子是,我将遍历每个“交付驱动程序”,并为每个要交付给他们的客户生成一个可打印的 PDF 文件。
在这种情况下,我把所有的客户都拉出来并存储到
List<Customer> AllCustomersList = customers.GetAllCustomers();
当我遍历送货司机时,我会做这样的事情:
List<Customer> DeliveryCustomers = AllCustomersList.Where(a => a.DeliveryDriverID == DriverID);
我的问题:我通过查询 List 对象的方式是否比每次都在数据库中查询与送货司机相关的客户记录更快?
【问题讨论】:
-
我无法想象一种从数据库中提取数据会比在内存中执行所有操作更好的方法,就像您目前正在做的那样......我唯一能想到的就是确保您没有提取更多数据然后您将使用...
-
查询列表应该快得多,因为它会存储在内存中。
-
什么时候数据太多放不进去需要用到数据库?
-
@xbonez。那不是真的。 DB是为过滤而构建的,有大量数据,你使用DB,而不是在内存中。
-
@xbonez - 虽然您适合较小的数据集,但对于非常大的数据集(可能是 10 或 100 数千,可能是数百万,可能更多),数据库变得更加高效,主要是因为索引和内存中数据集的组织。当然,如果数据库可以将整个数据集保存在内存中,它会比磁盘更有效。
标签: c# asp.net database performance linq