WiredTiger

WiredTiger 支持 LSM 树来存储索引。当你需要编写随机插入的大量工作负载时,LSM 树的写操作速度更快。

在 WiredTiger 中,没有就地更新。如果需要更新文档的元素,将插入新文档,同时删除旧文档。

WiredTiger 还提供文档级并发。它假定两个写操作不会影响同一个文档,但如果是,则一个操作将倒带并在以后执行。如果倒带是罕见的,那将是一个很好的性能提升。

WiredTiger 支持 Snappy 和 zLib 算法,用于压缩文件系统中的数据和索引。Snappy 是默认值。它的 CPU 密集度较低,但压缩率低于 zLib。

如何使用 WiredTiger 引擎

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>

注意:

  1. 在 mongodb 3.2 之后,默认引擎是 WiredTiger。
  2. newWiredTigerDBPath 不应包含其他存储引擎的数据。要迁移数据,你必须转储它们,然后在新的存储引擎中重新导入它们。
    mongodump --out <exportDataDestination>
    mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>
    mongorestore <exportDataDestination>