該如何使用SQL數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫還是兩者都用?
網(wǎng)友解答: 首先明確一點(diǎn),NoSQL不是Not SQL,而是Not Only SQL,兩者都是處理數(shù)據(jù)的,但是應(yīng)用環(huán)境還是有比較大的區(qū)別的。首先,SQL一般用來處理關(guān)系型數(shù)據(jù),數(shù)據(jù)也都是
首先明確一點(diǎn),NoSQL不是Not SQL,而是Not Only SQL,兩者都是處理數(shù)據(jù)的,但是應(yīng)用環(huán)境還是有比較大的區(qū)別的。
首先,SQL一般用來處理關(guān)系型數(shù)據(jù),數(shù)據(jù)也都是結(jié)構(gòu)化存儲(chǔ)的,比如我們建立一個(gè)表,那么這個(gè)表里的所有行的字段都是一樣的,當(dāng)然,現(xiàn)在不少SQL數(shù)據(jù)庫也支持一些非結(jié)構(gòu)化數(shù)據(jù)了,比如XML、Json等,不過,原則上,我們還是把SQL劃入結(jié)構(gòu)化存儲(chǔ)的范疇。
NoSql一般用來處理非結(jié)構(gòu)化的數(shù)據(jù),數(shù)據(jù)量一般是超級(jí)大的,動(dòng)輒幾億條甚至幾十上百億條。數(shù)據(jù)的每一行(假如有這個(gè)概念的話)都可以有不同的列,存儲(chǔ)格式也不一樣,有的是鍵值對(duì)、有的json、有的列存儲(chǔ);現(xiàn)在流行的有Redis、Mongodb、Cassandra等十幾種,每種數(shù)據(jù)庫都各有千秋,其中最特殊的是Mongodb,這貨是最像關(guān)系型數(shù)據(jù)庫的非關(guān)系型數(shù)據(jù)庫,應(yīng)用范圍很廣,深受傳統(tǒng)關(guān)系型數(shù)據(jù)庫轉(zhuǎn)到非關(guān)系型數(shù)據(jù)庫使用者的喜愛。
兩者特點(diǎn)總結(jié)如下:
RDBMS
高度組織化結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化查詢語言(SQL)數(shù)據(jù)和關(guān)系都存儲(chǔ)在單獨(dú)的表中。數(shù)據(jù)操縱語言,數(shù)據(jù)定義語言嚴(yán)格的一致性- 基礎(chǔ)事務(wù)NoSQL
代表著不僅僅是SQL沒有聲明性查詢語言沒有預(yù)定義的模式鍵 - 值對(duì)存儲(chǔ),列存儲(chǔ),文檔存儲(chǔ),圖形數(shù)據(jù)庫最終一致性,而非ACID屬性非結(jié)構(gòu)化和不可預(yù)知的數(shù)據(jù)CAP定理高性能,高可用性和可伸縮性總之,各有特點(diǎn),需要根據(jù)具體的業(yè)務(wù)情況來選擇,也是可以并用的。