Mongodb
如果不使用 TTL 索引,是否建議設置“–setParameter ttlMonitorEnabled=false”以獲得更好的性能
我們執行一些分片集群和許多副本集。我們的客戶不使用 TTL 索引。
如果我們禁用負責從具有 TTL 索引的集合中刪除文件的後台執行緒,會有更好的性能嗎?
mongod --setParameter ttlMonitorEnabled=false
我發現一個舊的(2013 年)生存時間(TTL)減慢了郵件列表上的 mongod 文章。我不知道這是邊緣情況還是一般優化。
引用自SERVER-10033
如果系統處於極端負載下或在中斷/損壞調查期間,可用於停止 TTL 刪除。單個全域(或每個 DB)設置比必須更新或刪除所有 TTL 索引更容易。
除非在極端情況下,如果您不使用該功能,我看不到這會產生任何明顯的影響,如果您正在使用該功能並承受重負載(停止刪除,直到負載基本消退),它旨在作為緊急措施。
由於您沒有在任何地方使用 TTL,所有
MongoDB
要做的就是掃描索引以查找包含該expireAfterSeconds
欄位的索引。您連結的範例本身就是一個邊緣案例,沒有多少人在數據庫中有 25 萬個索引,但即使在這種情況下,對如此小的集合的讀取查詢system.indexes
也不太可能使用足夠的資源來導致您出現問題。它可能會出現在慢查詢日誌中,但由於它基本上是無操作的並且只需要讀取鎖,因此對其他地方的影響很小。這就是理論,如果您想判斷對特定案例的影響,請分析您的系統以便了解目前性能,然後在關閉它後對其進行分析。如果它確實有影響,那麼我相信工程師
MongoDB
想了解它(以及您的案例),以便他們可以評估該功能的執行方式並查看您看到的行為是否有意。