在Debian上安裝MongoDB時,實際上并不需要直接選擇存儲引擎,因為MongoDB的存儲引擎是在安裝過程中由用戶根據需求自動配置的,而且MongoDB從3.2版本開始支持多數據存儲引擎,包括WiredTiger、MMAPv1(在3.3版本之前是默認存儲引擎)和In-Memory。從MongoDB 3.2版本之后,WiredTiger成為了默認的存儲引擎。
WiredTiger是MongoDB的默認存儲引擎,它提供了高性能和可靠性,并支持事務操作。如果你對讀寫性能要求較高,可以選擇WiredTiger存儲引擎。它支持文檔級別鎖,對于大多數讀寫操作,WiredTiger使用樂觀并發控制,這意味著它只在全局、數據庫和集合級別使用意向鎖,從而在多核系統中有效地提升性能。
MMAPv1存儲引擎直到2.6版本都是采用讀-寫鎖進行并發控制,即允許并發讀訪問一個數據庫,但是對于相同庫的單個寫操作之間只能是排他性的。從3.0版本開始,MMAPv1存儲引擎采用集合級別鎖,這也是對早期版本的改進。不過,值得注意的是,從MongoDB 4.x版本開始,MMAPv1存儲引擎不再被支持。
In-Memory存儲引擎則是將數據存儲在內存中,適用于對讀寫性能要求非常高的場景。如果對查詢速度要求極高,可以選擇In-Memory存儲引擎。但是,由于數據只存儲在內存中,它可能不適合所有類型的應用,特別是那些需要數據持久化的場景。
總的來說,對于大多數用戶來說,WiredTiger存儲引擎是一個很好的選擇,因為它提供了平衡的性能和可靠性。如果你的應用對性能有極高的要求,并且可以接受數據不是完全持久化的,那么可以考慮使用In-Memory存儲引擎。不過,需要考慮到的是,In-Memory存儲引擎可能會因為系統重啟而丟失所有數據。