我最近推出了一个尚未看到太大生产规模的网络应用程序,但我希望(希望;)它会在不久的将来。
我发现使用db.copyDatabase()
将当前生产系统的快照复制到开发中非常有用的能力,并且想知道随着生产数据库的增长/承受更重的负载,我可能会遇到什么样的问题。
文档似乎没有表明该命令正在阻塞(具体来说,如果在命令运行时将数据添加到任一数据库,则数据集的引用会变得不同步)。
由于数据库被复制到开发(或登台)服务器,重建索引/等所花费的时间不会是一个大问题(至少在一段时间内)。
在这种情况下,文档对指导方针有点了解,所以我希望得到以下方面的建议:
- 运行 db.copyDatabase从生产中的实时数据库复制是否合适?
- 源数据库是否有性能影响?
- 超过它不再可行的大小是否有实际限制?(基于this question here,该限制似乎很大)
作为参考,应用程序和数据库是分开托管的(heroku / mongolab)。我还在命令db.dropDatabase()
之前在本地运行copyDatabase()
以获取全新的数据库。