2014-12-05 40 views
0

我想收集一些關於NoSQL數據庫的信息,我非常感興趣的是爲什麼NoSQL不需要ACID事務。關於這個在stackoverflow上似乎沒有太多的信息,所以我認爲這將是值得開始一個新的問題。關於NoSQL數據庫爲何不需要ACID的一些論點?

+0

問題不在於爲什麼數據庫不需要事務。問題是爲什麼你的項目不需要交易。 – Philipp 2014-12-05 11:54:25

回答

1

我會說您的USE CASE可能會或可能不需要ACID事務,但您的技術選擇要麼支持ACID,要麼不支持ACID。如果你需要超級嚴格的ACID,也許NOSQL對你的用例來說不是一個好方法。但是,再次,有不同的ACID定義,以及交易的定義。所以說NOSQL並不需要ACID真的沒有道理,但要說它一般不支持ACID是真的,因爲NOSQL的一般用例支持不需要它。

這裏是HBase的說,關於ACID - 去年基本傢伙勝行/關係型數據庫的關鍵

http://hbase.apache.org/acid-semantics.html

ACID指的是不同的事務隔離級別等等等等

這是一個非常廣泛的問題,希望這有助於。

+0

感謝您的回覆。你會說哪種用例最好不用ACID? – user3412625 2014-12-05 02:40:33

+0

總之,重寫,重讀,但很少更新和刪除。另外,如果你的數據有稀疏字段,NoSQL善於存儲這種類型的多結構化數據 – markg 2014-12-05 21:06:24

1

因爲NoSQL數據庫故意放棄ACID語義來提高性能和可伸縮性。 ACID有成本,如果你不需要它,你可以在沒有它的情況下運行得更快。

+0

好點...高速採集...讀取主要優化的是一般用例 – markg 2014-12-05 02:03:17