2011-10-28 31 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疼痛感,卻又總有取捨。在某些使用情況下,非關係存儲可能會更快,因爲特定層次結構的所有數據可以更靠近地存儲在磁盤上。另請注意,非關係數據庫仍具有查詢功能。

最後,它是關於做一套合適的取捨爲您的特定用例。

相關問題