Cassandra or MongoDB for good scaling and big amount of queries
我有以下情况。有很多对数据库的查询(通常是写评论,阅读配置文件等等),而且,我认为读取比写入更多。我希望很有可能将db扩展到多个服务器。所以,我喜欢nosql :)
据我所知,通过阅读博客和StackOverflow上的问题答案(例如这个),在这种情况下最好的选择是使用Cassandra。
所以,问题是 - 卡桑德拉更适合我的目的吗?为什么?
第二个问题是关于Tornado的异步客户端库 - 你知道一些这方面的实现吗?正如您在上面链接的Wiki页面上看到的那样,只有mongodb和couchdb的异步客户端。这个事实也阻止了我。
也许我现在可以使用MongoDB(原因是异步库esces,也许在第一次它会比几个服务器上的Cassandra更快但没有异步),并且在一段时间之后将mongo中的数据转换为cassandra。你怎么看待这件事?
半答案 - 因为它与适用性无关。 Tornado 2.1支持扭曲为异步模式,这意味着您可以使用电话Cassandra库(twisted + Cassandra)进行异步Cassandra访问。
1 2 3 4 5 6 7 8 9 10 11 12 13 | import tornado.platform.twisted from telephus.pool import CassandraClusterPool from twisted.internet import reactor tornado.platform.twisted.install() from twisted.internet import reactor pool = CassandraClusterPool([HOST], keyspace='XXXX', reactor=reactor) pool.startService() reactor.run() # this calls tornado.ioloop.IOLoop.instance().start() |
也就是说,我正在使用MongoDB和mongoengine(非异步)进行一些个人项目,而Cassandra + telephus用于工作项目。 我在灵活的数据模型与固定数据模型和性能方面进行权衡。