2011-10-28 32 views
5

最新的热潮在数据库中,似乎周围的非关系数据库为中心。为什么?这似乎适得其反。例如,它使更多的意义,我表达我的关系的方式(对表的示例代码在Django + SQL)数据:我为什么要使用非关系数据库?

SQL:

create table post (id int primary key auto_increment, 
     name varchar, 
     created datetime); 

create table comment(id int primary key auto_increment, 
     text text, 
     post_id int, 
     created datetime, 
     foreign key post_id references post(id)); 

SQL的力量那这个信息可以用来表示,所以有许多方法。当然,整个对象 - 关系映射问题都存在,但我把它看作是一个功能,而不是一个问题。使用SQL,我可以获取比昨天早的给定帖子的所有不同评论,将所有这些评论整理在一起,并生成统计数据。对于非关系数据库可以做同样的事情吗?

这也似乎真正影响性能,使用像MongoDB的非关系型数据库,因为你会立刻抓住了整个对象图,而不是你所需要的最低限度。

有人能向我解释什么的好处是使用非关系型数据库的?

+0

http://stackoverflow.com/questions/441441/why-should-i-use-document-based-database-instead-of-relational-database – hplbsh

回答

5

看看在CAP Theorem

而且PACELC interpretation

关系数据库往往使一组权衡的,和非关系往往使一组不同的取舍。对于海量分布式数据集,非关系有时更有意义。

还有在非关系数据库可以消除很多ORM疼痛感,却又总有取舍。在某些使用情况下,非关系存储可能会更快,因为特定层次结构的所有数据可以更靠近地存储在磁盘上。另请注意,非关系数据库仍具有查询功能。

最后,它是关于做一套合适的取舍为您的特定用例。

相关问题