我最近有几种情况,我需要同一张表中的不同数据.一个例子是我将循环遍历每个“交付驱动程序”,并为每个要交付的客户
生成一个可打印的PDF
文件.
在这种情况下,我把所有的客户都藏起来@H_301_3@
List<Customer> AllCustomersList = customers.GetAllCustomers();
当我通过交付驱动程序,我会做这样的事情:@H_301_3@
List<Customer> DeliveryCustomers = AllCustomersList.Where(a => a.DeliveryDriverID == DriverID);
我的问题:通过查询List对象,每次查询与传送驱动程序相关联的客户记录时,是否更快地查询数据库?@H_301_3@
没有一个准确的行数,如果你传递它,你应该
查询DB而不是在内存列表< T>
但是经验法则是,DB被设计为使用大量的数据,并且它们具有优化“机制”,而在内存中没有这样的事情.@H_301_3@
所以你需要对它进行基准测试,看看DB的往返行为对于每一次对你来说都很重要的行数是值得的@H_301_3@
大概97%的时间,我们应该忘记效率很低,过早优化是所有邪恶的根源“@H_301_3@