现在我们正在使用 mongodb ,并且有一个包含10个字段和一个复合索引的集合会遭受大量写入而没有那么多读取。
因为我们在1000条记录的块中编写数据,并且mongodb启用了以块为单位写入数据的功能,所以这会加快一个过程,因此我们能够写出 60k条记录/秒没有索引, 45k记录/ s 带索引。
它不能很好地扩展水平。 Mongodb具有分片功能,但问题在于它有利于阅读以及是否有非常大的数据。因为我们将从集合中删除旧数据,这不是我们的主要问题,但写入是,并且分片实际上减慢了进程,因为我们可以看到因为你不能写入块(对于每个记录mongos必须决定放入哪个分片) )。实际上,即使我们制作了大约20k /秒并且具有水平刻度来进行写入也是好的,但是你在群集编写中使用的碎片越来越慢,因此解决方案并不多(我们可以看到)。
有没有办法让mongo分片能够很好地适应我们的场景?也许以某种方式告诉mongos将块(1000条记录)放入一个碎片中。也许这会给我们横向比例?
您对我们的问题建议了哪些其他NoSql数据库?
欢迎其他一些评论/解决方案。
答案 0 :(得分:0)
回答#2
你可以看看Riak。所有节点都是相同的,没有中央服务器,这意味着它可以非常好地水平扩展。您可以并行地向每个riak节点写入不同的信息位,这样可以提高写入速度。如果你的riak集群不够快,只需添加更多节点。