Mongodb 请为几乎没有写操作的高读服务提供数据库解决方案建议

Mongodb 请为几乎没有写操作的高读服务提供数据库解决方案建议,mongodb,indexing,database,Mongodb,Indexing,Database,我有一个约300万标记文档的缓慢增长的集合,我希望能够通过标记尽可能快地从该集合中选择文档,即不使用c编写自定义索引解决方案,等等 例如,我想选择所有由foo和bar标记的文档,或者选择所有由foo和not bar标记的文档 另一件事是大量的标签:目前为200k,计划为0.5-1kk,最坏情况下为2kk。 我知道按照现代标准,这些数字并不是什么不寻常的事情,但就我个人而言,我从来没有使用过这么大的数据集,我对数据库的总体经验在某种程度上是有限的,而且有这么多的选择 现在我正在考虑mongodb,

我有一个约300万标记文档的缓慢增长的集合,我希望能够通过标记尽可能快地从该集合中选择文档,即不使用c编写自定义索引解决方案,等等

例如,我想选择所有由foo和bar标记的文档,或者选择所有由foo和not bar标记的文档

另一件事是大量的标签:目前为200k,计划为0.5-1kk,最坏情况下为2kk。 我知道按照现代标准,这些数字并不是什么不寻常的事情,但就我个人而言,我从来没有使用过这么大的数据集,我对数据库的总体经验在某种程度上是有限的,而且有这么多的选择

现在我正在考虑mongodb,因为它正是我所需要的——多键。mongobd适合快速查询吗? 例如,其他看起来类似的nosql项目CouchDb会更好地满足我的目的吗?还是我应该试试好的老MySQL


我应该看看像hypertable或hbase这样的bigtable项目吗

如果服务器上有足够的ram,MongoDB或Mysql就可以了。Mongo很适合使用自动切分进行水平缩放。Mongo将使用比MySQL更多的磁盘空间。为了获得最快的读取速度,最好使用redis或memcached进行最常用的查询。

如果您想要对相对静态的数据进行真正快速的查询,请缓存所有内容,而不考虑数据库。2kk是指200万2M?@Thilo:我有时也使用这种表示法:@Sergio Tulentsev,我将无法缓存所有内容:我有大量的标记,它们的组合数量刚好在屋顶上方。每个文档有多少个标记?每个标签有多少个文档?粗略地这些都是重要的数字……如果几乎所有的解决方案都是好的,那么哪一个是最简单的?