面试题答案
一键面试常见存储引擎
- WiredTiger:默认存储引擎,支持文档级并发控制,压缩性能好,适用于大多数场景。
- MMAPv1:较老的存储引擎,基于内存映射文件,适合简单场景,但并发性能不如WiredTiger。
- In-Memory:数据存储在内存中,读写性能极高,适用于对实时性要求高且数据量相对较小的场景。
启动时指定存储引擎
在MongoDB配置文件(通常是mongod.conf
)中,使用storage.engine
选项来指定存储引擎。例如,要指定为WiredTiger引擎:
storage:
engine: wiredTiger
或者在启动命令中使用--storageEngine
参数,如:
mongod --storageEngine wiredTiger
侧重于读操作的存储引擎选择及原因
如果应用场景侧重于读操作,推荐选择WiredTiger引擎。原因如下:
- 文档级并发控制:支持文档级别的并发读写,在高并发读场景下,能减少锁争用,提高系统整体的读性能。
- 压缩性能:具备较好的压缩算法,能有效减少磁盘I/O,因为读取数据时从磁盘加载的数据量相对较少,从而间接提高读操作效率。
- 稳定性和成熟度:作为MongoDB默认存储引擎,经过了大量实践检验,具有较高的稳定性和可靠性,能保障读操作的持续稳定执行。