我目前正在研究一个基于 MongoDB 的系统,该系统将存储至少 10 亿个文档。这将每月增加约 5000 万。
主集合的 id 格式为 YYYYMM_SOURCEID_DOCTYPE_UUID,用作分片索引。每条记录产生大约 1kb 的索引。99% 的操作将发生在最近三个月的数据上。我们希望支持文档的关键字搜索,在最近三个月的数据中表现非常好,至少在较旧的内容上表现还不错。
只要我可以将索引的活动端保留在内存中,MongoDB 听起来是否是一个合理的解决方案?
我建议您更改分片键,就像当前的分片键一样,您似乎可能会点击最后一个分片,因为键的 YYYYMM 位将使所有新插入始终进入“最右边”的分片。http://www.mongodb.org/display/DOCS/Choosing+a+Shard+Key#ChoosingaShardKey-Cardinality有更多相关信息。
根据“关键字”字段的基数,您可能希望选择它作为分片键。这样,mongodb 就可以轻松地从一个分片中获取属于某个关键字的所有文档。所有写入仍将写入所有分片,因为它是按关键字分区的。
如果“keywords”的基数不是很高(即 < 100),那么这不是一个好的分片键,但是,您可以将其与年份和月份结合起来,例如 keywords_YYYYMM。
| 归档时间: |
|
| 查看次数: |
1554 次 |
| 最近记录: |