在MongoDB上,是否可以在集合级别更改数据库引擎?就像MYSQL对InnoDB和MyISAM一样。
请告诉我。
谢谢,
ķ
答案 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)
这可以在MongoDB 2.8中使用:http://www.mongodb.com/presentations/storage-engine-internals
答案 3 :(得分:-1)
从MongoDB 3.0开始,集合级别支持不同的存储引擎。 MongoDB附带两个存储引擎,MMAPv1存储引擎基本上是旧引擎和新引擎WiredTiger。
使用参数mongo
或配置密钥storage.engine
--storageEngine <engineName>
时,可以设置默认存储引擎
但是当您想要创建使用不同存储引擎的集合时,您可以在使用db.createCollection
方法创建集合时明确选择它:
db.createCollection(
"<collectionName>",
{ storageEngine: { <engineName>: { <engineOptions> } } }
)