在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存储引擎可能会因为系统重启而丢失所有数据。