Pan*_*hra 9 mysql sql linq-to-entities list linq-to-sql
我有一个表(我的Sql)有2百万条记录和一个列表有100条记录.我有列表除了lamda表达式,用于查找List中但不在表中的所有Url.
现在的问题是它需要花费大约5分钟的时间.我在同一台服务器上使用强大的VPS和代码和数据库.
请建议我所有可能的方法来增加linq到sql和linq到实体的性能.
我的代码是'回归
Urls.Except(DbContext.postedurllists.Select(crawl => crawl.PostedUrl).ToList()).ToList();`
Run Code Online (Sandbox Code Playgroud)
其中网址包含100个网址的位置和posturllists是一个包含2百万条记录的表格.谢谢
您当前正在从数据库中提取所有URL。这不是一个好主意。相反,我建议通过有效地将列表传递到数据库中来从数据库中提取交集,并根据结果执行例外操作:Urls
var commonUrls = DbContext.postedurllists
.Select(c => c.PostedUrl)
.Where(url => Urls.Contains(url))
.ToList();
var separateUrls = Urls.Except(commonUrls);
Run Code Online (Sandbox Code Playgroud)