我读了很多关于NoSQL-Databases的内容(播客,stackoverflow问题..),我真的好奇地使用它们,但是......
虽然我阅读了很多内容,例如how-to-sql-or-nosql或what-scalability-problems-have-you-solved-using-a-nosql-data-store,但我仍然不确定要使用哪种数据库。
问题是:对于(学校)项目,我们(我的项目组)需要实现一个非常大的数据库(应该提供一个休息服务器,可能是用erlang编写的,有很多客户端)。 我们非常擅长为关系数据库设计数据模型。所以我们开始这样做。
现在我玩了一些NoSQL并且对性能印象非常深刻。 那么:使用NoSQL数据库是一个好主意吗?我们的Datamodel具有 lot 关系,并且查询将具有大量连接(或者至少使用连接视图)。 我有时读到这意味着我应该使用关系数据库,在其他地方我读到这意味着我可以轻松地将其重新设计为NoSQL-Style以消除这种关系开销。
我应该使用NoSQL,如果是,您建议我使用哪个系统? 像HanderlerSocket for MySQL之类的东西是一种选择吗? 我怎样才能轻松地将关系数据模型重新设计为NoSQL-Style?
答案 0 :(得分:5)
您的问题的答案是:这完全取决于您的数据和要求。在实际项目中,您将在特殊项目中分析各种NoSQL数据库(HBase,Cassandra,MongoDB,CouchDB,Riak等)的优势。然后,您可以根据MySQL等经典RDBMS的优势来评估它们。
在像你这样的学校项目中,NoSQL-Database主要是品味的决定,因为您的项目可能永远不会受益于典型的NoSQL优势,如无模式或分片。
重新设计关系数据模型可能是一项非常棘手的任务,因为您必须围绕所选NoSQL数据库的不同数据库模型。如果您的业务数据符合所选NoSQL数据库的数据库模型,则联接不一定是问题。有时,在一些NoSQL数据库(例如像MongoDB这样的面向文档的数据库)中,加入密集型关系模型要容易得多。
如果您真的想尝试使用NoSQL,请使用MongoDB,因为第一个条目的文档非常详细。
作为德语演讲者(Grütziindie Schweiz aus Berlin),我建议您阅读以下德语书籍,它可以帮助您了解使用NoSQL数据库的主要原因,并解释开始使用NoSQL数据库的主要步骤最受欢迎的NoSQL数据库:NoSQL: Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken
答案 1 :(得分:4)
请注意,您不需要仅使用1个数据存储引擎。您可以并行使用SQL和noSQL解决方案。
请记住正确记录数据库/ noSQL结构。
-daniel
答案 2 :(得分:0)
如果要在nosql中进行连接,可以使用playOrm,它在分区上进行连接。通过这种方式,您可以拥有1万亿个行表,该表的1个分区可能只有100,000行,您可以将该分区与另一个分区相连。 playOrm也会为你提供所有熟悉的休眠关系。