簡體   English   中英

MongoDB Limit()是否加載內存中的所有文檔?

[英]Does MongoDB Limit() load all the documents in memory?

$result = $collection->find('some constraints')->limit(10);

現在假設滿足“一些約束”的文件是10000。

那么,這個查詢是否首先在內存中獲取10000個文檔並向我返回10或者僅加載由limit指定的10個文檔?

我最近寫了一篇關於此的文章 簡而言之,當您使用限制時,驅動程序將僅從服務器請求10個項目,因此在客戶端,內存中將不超過10個文檔。 “limit”嚴格來說是客戶端事物,僅在獲取文檔時使用。 查詢仍將完整運行。

在服務器端,將讀取與find()約束匹配的所有文檔,這意味着操作系統會將這些文件從磁盤放入內存,如果它們尚未在內存中。 但話說回來,從MongoDB服務器進程來看,所有文檔總是在內存中; 它是操作系統進行緩存,以及從磁盤進行分頁。 閱讀更多有關MongoDB如何在其文檔中管理內存的信息

暫無
暫無

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

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