我正在编写一个自定义服务器,它应该非常高效。 它连接了100.000-600.000个客户端,并存储了1000万条记录。 数据库将在单个服务器上运行。
服务器代码通过扭曲的框架(在python中)实现。 现在我使用MySQL,但我认为NoSQL数据库效率会更高(没有复杂的查询,许多简单的写入/时间戳更改和许多简单的读取)。
我应该选择哪个NoSQL数据库?简单的索引是一个优点,我希望选择从管理系统搜索数据库,从包含特定关键字的日志创建组和类似的东西。
我看过Cassandra和MongoDB,MongoDB似乎更容易进入/使用。
感谢您的帮助!
答案 0 :(得分:1)
就纯粹的学习曲线而言,MongoDB已经将自己定位为一个非常友好的MySQL替代品。卡桑德拉是一个非常不同的野兽,将有更高的学习曲线。也就是说,两者都有可能根据您描述的内容解决您的问题。
答案 1 :(得分:1)
您有非常简单的要求:轻松索引,任意搜索,关键字分组等 - 几乎每个NoSQL系统都能正常工作。它真正归结为您感到舒适的技术。喜欢C#?然后使用RavenDB - 它甚至可以在执行查询时自动添加索引。像Erlang一样?然后你是一个怪胎,但你应该使用CouchDB。喜欢Javascript和JSON吗?使用MongoDB。
我个人非常喜欢Mongo,因为它感觉像是SQL和NoSQL数据库的可爱混合体。你可以将它归结为地狱(并获得惊人的性能!),这使它几乎像一个RDBMS。您也可以像键/值存储一样使用它,并将其用作“天空中的巨型哈希表”。 YMMV。和他们一起玩,看看哪些对你有用。
答案 2 :(得分:0)
Cassandra实际上是为多个服务器节点设计的,提供透明复制。因此,使用单个服务器主机,您将无法获得最佳价值。 Cassandra也主要用于大规模(并因此牺牲索引和灵活查询)。 1000万条记录并不是很大,所以你可以尝试更灵活但可扩展性更低的东西。