-5

在 MongoDB 上,是否可以在集合级别更改数据库引擎?就像 MYSQL 对 InnoDB 和 MyISAM 所做的那样。

请告诉我。

谢谢,

ķ

4

4 回答 4

4

注意:这个答案适用于 MongoDB 2.x。自 3.0 版以来,情况发生了变化。

我的回答是否定的。

据我所知,默认的内存映射存储引擎是唯一支持 MongoDB 的存储引擎。当您启动 mongod 时,没有与存储引擎相关的配置选项。收集级别的此类选项更难以想象,也根本不实用。

如果您有兴趣更改 MongoDB 背后的引擎,请查看 TokuMX for MongoDB http://www.tokutek.com/products/tokumx-for-mongodb/或 Spire for Mongo http://drawntoscale.com/announcing-尖顶换蒙戈/

于 2013-11-14T19:09:19.197 回答
2

无法在集合级别更改存储引擎。MongoDB 3.0 提供了语法db.createCollection(...{storageEngine:...}...),但它仅用于将参数传递给已用于数据库的新wiredTiger 存储引擎。您不能更改已创建数据库的存储引擎。请参阅db.createCollection()

于 2015-09-17T20:05:31.720 回答
-1

这在 MongoDB 2.8 中是可能的:http ://www.mongodb.com/presentations/storage-engine-internals

于 2014-06-28T19:55:57.593 回答
-1

从 MongoDB 3.0 开始,集合级别支持不同的存储引擎。MongoDB 附带两个存储引擎,MMAPv1 存储引擎(基本上是旧引擎)和新引擎 WiredTiger。

mongo使用参数--storageEngine <engineName>或config键启动时可以设置默认存储引擎storage.engine

但是,当您想创建一个使用不同存储引擎的集合时,您可以在使用以下db.createCollection方法创建集合时显式选择它:

db.createCollection(
   "<collectionName>",
   { storageEngine: { <engineName>: { <engineOptions> } } }
)
于 2015-07-30T15:54:39.877 回答