现在,我要设计一个数据库,并且某些动态属性中将包含一些表。我可以选择像MySQL这样的传统RDBMS来通过EAV设计模型来实现它们。但是现在我想尝试一些新的东西。我听说NoSQL数据库可以轻松解决动态属性问题,我想在MongoDB和Cassandra之间选择一个。
以下是有关我要设计的数据库的一些情况:
此数据库中大约有200,000个项目,并且该数据库将存储在单个服务器中。
当用户要使用该数据库时,主要过程是:用户首先访问表A,表B的外键,然后访问表B,获得表C的外键。表C有很多固定值属性和一些动态属性。然后,用户将从表C中获得一个元组,读取一些值,然后修改该元组的某些值,并可以添加该元组的一些动态值。
我将几乎所有这些元组从Excel电子表格导入到Java数据库中。那么哪一个对Java有更好的支持呢?
导入这些数据后,将不再有任何插入或删除操作。几乎所有针对外部用户的操作都可以读取和更新。那么哪种数据库更适合这种情况。
我知道在这个小项目中没有必要使用NoSQL数据库,但是我真的很想尝试并学习一个NoSQL数据库。因此,感谢您的回答,如果您还有其他选择,那将非常好。
根据您提供的信息,没有明显的答案。
您根据表,联接,外键描述了查询模式。首先,我建议您考虑是否可以进行数据嵌入,而不是在表之间进行引用。
http://docs.mongodb.org/manual/core/data-modeling/
对于我们的项目早期阶段,我们选择了mongodb,尽管现在我们将某些东西移至Cassandra,但我真的不后悔做出这样的选择。
Mongo非常简单,灵活。非常易于开发,应用架构更改,查询。它宽恕了很多。我想说这对于NoSQL新手来说几乎是无价的。
卡桑德拉(Cassandra)更先进。它需要更多考虑架构设计和查询模式。水平可伸缩性是NoSQL市场上最好的之一。Cassandra在写操作方面也有很大的优势。
然后,许多Mongodb用户来了两个Cassandra。但只有在存在真正的性能和可伸缩性原因的情况下
但是由于您将要进行单机安装-mongodb可能就足够了。当数据适合RAM时,它具有非常好的读取性能。
这两个数据库都有良好支持的驱动程序。
https://github.com/mongodb/mongo-java-driver
对于Cassandra,值得参考新的Datastax驱动程序
https://github.com/datastax/java-driver
我知道在这个小项目中没有必要使用NoSQL数据库,但是我真的很想尝试并学习一个NoSQL数据库。
那我推荐Mongodb ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句