预先加载整个列表并每次搜索还是向数据库发送搜索请求?

我有大约100,000张借记卡的列表,我想在更新与该卡相关的交易列表时找到相关的卡。我想知道首先加载整个卡片列表并从已加载的列表中查找卡片还是每次使用Entity Framework进行数据库查询是否更为有效?

//Scenario 1:
var cards = db.Cards.ToList();
foreach (var transaction in newTransactions)
{
   var card = cards.FirstOrDefault(x => x.CardNumber == 
   transaction.Transactionmean);
}

//Scenario 2:
foreach (var transaction in newTransactions)
{
   var card = db.Cards.FirstOrDefault(x => x.CardNumber == 
   transaction.Transactionmean);
}
czg2009 回答:预先加载整个列表并每次搜索还是向数据库发送搜索请求?

通常,如果您的表已正确索引,则使用数据库查询总是更快,因为可以使数据库对大型数据集进行快速查询。

数据库还支持缓存,否则您必须实现缓存以加快相似或相同的查询。

最后,如果只需要数据的一小部分,传输大量数据绝不是一个好主意,想象一下连接速度很慢,每次必须等待10秒才能接收整个数据集,而不是等待2秒以发送查询并仅接收相关数据集。

本文链接:https://www.f2er.com/3124178.html

大家都在问