MongoDB存储引擎在集合级别上

时间:2013-11-13 13:20:49

标签: mongodb

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

请告诉我。

谢谢,

ķ

4 个答案:

答案 0 :(得分: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-spire-for-mongo/

答案 1 :(得分:2)

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

答案 2 :(得分:-1)

答案 3 :(得分:-1)

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

使用参数mongo或配置密钥storage.engine

启动--storageEngine <engineName>时,可以设置默认存储引擎

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

db.createCollection(
   "<collectionName>",
   { storageEngine: { <engineName>: { <engineOptions> } } }
)