簡體   English   中英

mongodb 中的多線程刪除是否阻塞?

[英]Is multi threaded delete from mongodb blocking?

我正在執行一項任務,我需要從 mongodb 中刪除一些非常大的記錄。 有時記錄在 2M 和 3M 之間。 我正在努力盡可能快地做到這一點。

我的想法是使用某種線程池並將這個數字分成大約 20 個線程,每個線程刪除集合的一部分。 在我進一步采用這種方法之前,我想知道這是否是一種好的(有希望的)方法。 我主要擔心的是,如果這在 mongo 中是不可能的,我將在 db 中出現阻塞行為,並且基本上線程將等待彼此完成刪除。

如果建議任何其他方法/解決方案,我也會很高興。

項目語言為Java/Spring。

在“盡可能快地”做任何事情之前,您需要了解瓶頸在哪里(通常是 CPU、內存或磁盤),這樣您的更改才能真正發揮作用。

當涉及到刪除時,刪除操作有一些開銷(客戶端必須向服務器發送命令,服務器必須解析它等等)。

假設您有大量刪除,在測量掛鍾時間時使用 2 個應用程序線程進行刪除可能是減少此開銷的好主意。

被刪除的文檔大小無關緊要。

如果您假設服務器由於文檔大小而受到 I/O 限制,那么同時向它發送更多請求根本無濟於事(實際上這會適得其反)。

暫無
暫無

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

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