MongoDB wiredTiger存儲引擎下的存儲方式LSM和B-Tree比較


前段時間做攔截件監控的時候把攔截件生命期存入mongodb,因生命期有各種變化,因此對此表的更新寫操作非常多,老大給我看了一篇文章,才知道mongodb已經支持lsm存儲方式了。

原文如連接:https://github.com/wiredtiger/wiredtiger/wiki/Btree-vs-LSM

文中對比了LSM和B-Tree的讀寫吞吐量,在單線程寫操作下和多線程讀操作下的差異。英文差的小伙伴別指望我這個半吊子來翻譯了。

總結一點就是:在寫操作上,LSM的吞吐量會是B-Tree的1.5~2倍   而在讀操作上,隨着讀線程的增加,LSM性能下降很明顯,B-Tree在讀的性能上吞吐量是LSM的1.5~2倍。

因此在一個表需要頻繁的進行寫操作時,換成LSM的存儲方式,將會是一個不錯的選擇。

目前正准備從B-Tree轉向LSM,需要一段時間驗證其效果。

另,目前只知道在創建collection的時候可以修改存儲方式,腳本如下:

db.createCollection(
"TestTable",
{storageEngine: { wiredTiger: {configString: "type=lsm"}}}
)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM