目前我们的系统使用PostgreSQL,但是我们似乎已经推动了其功能的极限。我们的一些表需要每秒处理100多个读/写操作,因此可能需要在多台机器上水平扩展。
使用GAE的Big Table有很多经验。 Big Table有很多查询选项。例如,可以对列表数据字段进行查询。 Cassandra应该基于Big Table,但是如果我理解正确的话,对于Cassandra,我们实际上必须在Cassandra上自定义一个使用和维护索引表的层。
如果有一个开源数据库可用,我们没有必要构建我们自己的自定义逻辑来维护索引表,Zig-zag合并连接等等,那会很棒......
卡珊德拉是个好人吗?或者有哪些可能被认为更好?
答案 0 :(得分:5)
除非操作是巨大的连接或返回数十万行,否则您选择的任何数据库都将能够维持100次操作/秒。如果没有成千上万的每个节点读写,Cassandra将毫无问题地为数千人提供服务。
如果不了解您的特定用例,就无法向您提供有意义的建议。 Cassandra是一个很棒的数据库,但如果它适合你,我不知道。我建议在Stack Overflow上查看cassandra标签,看看人们会问什么,以及它是否看起来像你正在尝试做什么,如果答案说可以用Cassandra(我知道我'回答了很多问题,答案是Cassandra不是那个特定案例的最佳选择。)
Cassandra和GAE Big Table有很大的相似之处,但也有很大差异。绊倒新Cassandra用户的一件事是,实际上没有任何办法可以做“仅添加此东西,除非那里有其他东西”或“添加一个项目并删除除最后N个项目以外的所有内容”。