在生产环境中,何时以及多久构建MongoDB索引?

3
我即将使用MongoDB作为存储部署Web应用程序。问题是,本地环境下可以随时构建索引(也可以自动完成)-但在生产环境中不应该这样做。现在切换到生产环境时,我不确定何时以及多久需要构建索引。我应该每天做吗?每周做一次?我的项目类似于一个小型社交网络-所以假设有一天会有约100,000个用户。根据数据量的大小,可能需要几个小时甚至几天来构建索引。
我打算在后台构建我的索引(请参见此处http://www.mongodb.org/display/DOCS/Indexing+as+a+Background+Operation)。这仍会导致写锁定,但构建工作将暂停以允许其他读者和写入者访问数据库 - 因此,如果对数据库有重负载,后台索引构建仍会以负面方式影响性能。因此,它应该在流量最小时段内完成(在此处进行研究http://www.javabeat.net/articles/353-indexing-in-practice-using-mongodb-1.html)。
有人有经验在生产环境中何时以及多久创建索引吗(最好是使用大量数据)? 我正在使用Rails与Mongoid(http://mongoid.org/)。
1个回答

2
你似乎认为你需要定期重建索引。这并不是事实。MongoDB在写入相关数据时会更新索引。
我能想到的生产环境中必要进行索引重建的唯一原因有:
- 实时优化(例如,添加一个索引到一个字段,因为它会显著提高性能) - 在涉及模式更改的部署后 - 在索引相关错误之后(不应该发生)

嗨Remon,我确实认为我需要定期构建索引。我有点陷入了这个想法。当然,索引在数据写入时更新是有道理的 - 就像其他数据库系统一样。非常感谢你的帮助! - RaceCondition

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接