假设我在数据库中有一个包含 10k 条记录的表。我不再需要实际使用那些 10k 记录,但我仍然需要将它们保存在数据库中。该表现在将用于存储新数据。因此,除了表中已经存在的 10K 记录之外,还会有更多记录出现。与“旧”的 10K 记录相反,我确实需要处理新插入的数据。现在我这样做是为了获取我需要的数据:
List<Stuff> l = (from x in db.Table
where x.id > id
select x).ToList();
我现在的问题是:LINQ(或一般的 SQL)中的子句如何在幕后工作?where
是否要搜索整个表,直到(x.id > id)
为真?因为假设表将从 10k 记录增加到 20K。如果我知道我只需要从某个点开始查看,那么查看整个 20 k 记录会有点傻。
在使用 LINQ to 实体时,我遇到了性能问题(不是戏剧性的,但足以被它激怒),我有点不明白,因为现代计算机筛选一个完全没有问题仅有 2 万条记录。有人建议我使用存储过程而不是 LINQ 查询,但我不知道这是否会提高性能?
任何反馈将不胜感激。