gpt4 book ai didi

c# - LINQ 的 Enumerable.Take 方法在速度方面是否与 SQL 的 TOP 相当?

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:53 26 4
gpt4 key购买 nike

我需要在一个包含将近 100 万条条目的表中进行查询,但有趣的部分只有前 500 条。

我想知道在查询行的末尾使用 Take() 方法是否是速度(和内存)优化方面的最佳选择,或者只是执行整个查询然后获取顶部元素是一回事.

最佳答案

如果您运行 Enumerable.Take,那么您正在使用 linq-to-objects - 是的,它将在客户端运行整个查询和过滤器。这将是不必要的昂贵。

这就是您不应该这样做的原因。您应该使用 Queryable.Take - 然后它将做正确的事情,并在数据库中进行分页。

如果您使用:

var page = query.Take(count)

(等)它会自动正确。

关于c# - LINQ 的 Enumerable.Take 方法在速度方面是否与 SQL 的 TOP 相当?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19820828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com