为MongoDB 2.2中的每个集合创建一个不同的数据库

lov*_*esh 6 mongodb

MongoDB 2.2每个数据库都有一个写锁定,而不是以前版本中服务器上的全局写锁定.如果我将每个集合存储在一个单独的数据库中,以便有效地为每个集合设置一个写锁定,那就没关系了.(这将使它看起来像MyISAM的表级锁定).这种方法有问题吗?

Gat*_* VP 6

锁定有一个关键的限制,那就是local数据库.该数据库包括oplog用于复制的集合.

如果您正在生产中运行,则应该使用副本集运行.如果您正在使用副本集运行,则需要了解该数据库的写锁定效果.

将10个集合分解为10个数据库是没有用的,如果它们都阻止等待oplog.

在采取重大措施重写之前,请确保oplog不会导致问题.

另外,请注意MongoDB实现了DB级安全性.如果您正在使用任何安全功能,那么您现在可以创建更多安全数据库.