簡體   English   中英

Take() 是否會提高 EF Core 的性能?

[英]Does Take() increase performance in EF Core?

我正在開發一個信使,我當前加載消息的邏輯是從數據庫中獲取消息,按日期排序並從中獲取 20 個,然后將它們傳遞給客戶端,就像電報一樣,當用戶滾動到頂部時,服務器傳遞更多消息和消息結束的相同邏輯。

其實,我是在模擬延遲加載,但我不知道它真的是延遲加載嗎? 我想知道OrderTake查詢是否會收到所有消息?

Take會提高性能嗎? 如果沒有,我應該如何實施這種情況?

這里有很多事情需要考慮,鑒於您對基於日期的分頁的要求,您將需要添加一個新列,用作有效索引,以封裝每個帖子的日期(而不是時間)。 因此,對於您的“帖子”表以及任何可能保留完整時間戳的“已創建”字段,添加一個僅包含(日期)字段的新列(或字符串會更好,因為您將使用可排序的 -僅日期部分的字符串表示)

所以這將涵蓋正確的 db-wise 設置,這是因為沒有更好的地方可以進行任何排序,特別是如果您需要能夠大規模擴展。

因此,准備好高效的索引列將允許您在單個異步查詢中進行 orderBy、Skip(loaded) 和 Take(NextPageCount),EF 將生成該查詢,並且您的數據庫將能夠針對該查詢進行優化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM