SQL 谨垃、 NoSQL 和 NewSQL 的優(yōu)缺點(diǎn)比較

SQL作為主要的數(shù)據(jù)存儲(chǔ)方式已經(jīng)超過40年拄踪,并且經(jīng)歷了至少兩個(gè)指數(shù)擴(kuò)張期:20世紀(jì)90年代Web應(yīng)用程序崛起之后蝇恶,以及在過去十年中由于移動(dòng)設(shè)備爆炸引起的擴(kuò)張。 因此惶桐,越來越小的公司開始發(fā)現(xiàn)使用數(shù)據(jù)庫的好處撮弧,而像Google這樣的互聯(lián)網(wǎng)巨頭則已經(jīng)將數(shù)據(jù)單位上升到PB或甚至EB。

在SQL 的發(fā)展過程中姚糊,產(chǎn)生了許多迭代產(chǎn)品贿衍,其中最重要的是SQL,NoSQL和NewSQL — 它們一起負(fù)責(zé)絕大部分的數(shù)據(jù)庫市場(chǎng)救恨。

所以贸辈,如果你要選擇一個(gè)數(shù)據(jù)庫工具,你應(yīng)該選擇哪一個(gè)肠槽? 其實(shí)擎淤,沒有明確的答案。 不同的人和公司選擇不同秸仙,這更多地取決于他們對(duì)每個(gè)特定項(xiàng)目的偏好和相對(duì)優(yōu)勢(shì)嘴拢,而不是其中一個(gè)對(duì)其他所有的直接優(yōu)勢(shì)。 那么寂纪,這些優(yōu)點(diǎn)和缺點(diǎn)是什么席吴? 讓我們來看一下。

SQL

SQL是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)捞蛋,顧名思義孝冒,它是圍繞關(guān)系代數(shù)和元組關(guān)系演算構(gòu)建的。 70年代以來拟杉,它一直是主要的數(shù)據(jù)庫解決方案庄涡,只是最近才有了其他產(chǎn)品的空間。 不管有些人說什么搬设,這意味著它一直能出色地執(zhí)行廣泛的任務(wù)穴店。 其主要優(yōu)點(diǎn)如下:

  • 不同的角色(開發(fā)者,用戶焕梅,數(shù)據(jù)庫管理員)使用相同的語言。
  • 不同的RDBMS使用統(tǒng)一標(biāo)準(zhǔn)的語言卦洽。
  • SQL使用一種高級(jí)的非結(jié)構(gòu)化查詢語言贞言。.
  • 它堅(jiān)持 ACID 準(zhǔn)則 (原子性,一致性阀蒂,隔離性该窗,持久性),弟蚀,這些準(zhǔn)則保證了數(shù)據(jù)庫尤其是每個(gè)事務(wù)的穩(wěn)定性,安全性和可預(yù)測(cè)性酗失。

如你所見义钉,許多SQL的好處來源于它的統(tǒng)一性,舒適性和易用性规肴。 即使你只有非常有限的SQL知識(shí)(或完全沒有捶闸,如果需要),你可以在像 online SQL Query Builder 這樣的特殊工具幫助下使用它拖刃。

然而删壮,它的缺點(diǎn)使得它非常不適合某些類型的項(xiàng)目。 SQL的主要問題是它難以擴(kuò)展兑牡,因?yàn)樗男阅茈S著數(shù)據(jù)庫的變大而快速下降央碟。 分布式也是有問題的。

NoSQL和NewSQL出現(xiàn)的原因之一是均函,以前的RDBMS的設(shè)計(jì)不能滿足現(xiàn)代數(shù)據(jù)庫每秒處理的事務(wù)數(shù)量亿虽。 像亞馬遜或阿里巴巴等需要處理驚人數(shù)據(jù)量的巨頭,以前的RDBMS會(huì)在幾分鐘內(nèi)出現(xiàn)問題苞也。

NoSQL (Not Only SQL)

NoSQL越來越受歡迎洛勉,其中最重要的實(shí)現(xiàn)是Apache Cassandra,MongoDB等產(chǎn)品墩朦。 它主要用于解決SQL的可擴(kuò)展性問題坯认。 因此,它是沒有架構(gòu)的并且建立在分布式系統(tǒng)上氓涣,這使得它易于擴(kuò)展和分片牛哺。

然而,這些好處是以放寬ACID原則為代價(jià)的:NoSQL采取最終一致性原則劳吠,而不是所有四個(gè)參數(shù)在每個(gè)事務(wù)中保持一致引润。 這意味著如果在特定時(shí)間段內(nèi)沒有特定數(shù)據(jù)項(xiàng)的更新,則最終對(duì)其所有的訪問都將返回最后更新的值痒玩。 這就是這樣的系統(tǒng)通常被描述為提供基本保證的原因(基本可用淳附,軟狀態(tài),最終一致性) — 而不是ACID蠢古。

雖然這個(gè)方案極大地增加了可用時(shí)間和伸縮性,它也會(huì)導(dǎo)致數(shù)據(jù)丟失----這個(gè)問題的嚴(yán)重程度取決于數(shù)據(jù)庫服務(wù)器的支持情況和應(yīng)用代碼質(zhì)量.在某些情況下,這個(gè)問題十分嚴(yán)重.

另一個(gè)NoSQL出現(xiàn)的問題是現(xiàn)在有很多類型的NoSQL系統(tǒng),但它們之間卻幾乎沒有一致性.諸如靈活性,性能,復(fù)雜性,伸縮性等等特性在不同系統(tǒng)間差別巨大,這使得甚至是專家在他們之間都很難選擇.不過,當(dāng)你根據(jù)項(xiàng)目特點(diǎn)作出了合適的選擇,NoSQL可以在不顯著丟失穩(wěn)定性的情況下提供一個(gè)遠(yuǎn)比SQL系統(tǒng)更高效的解決方案.

NewSQL

NewSQL是一種相對(duì)較新的形式奴曙,旨在使用現(xiàn)有的編程語言和以前不可用的技術(shù)來結(jié)合SQL和NoSQL中最好的部分。 NewSQL目標(biāo)是將SQL的ACID保證與NoSQL的可擴(kuò)展性和高性能相結(jié)合草讶。

顯然洽糟,因?yàn)榻Y(jié)合了過去僅單獨(dú)存在的優(yōu)點(diǎn),NewSQL看起來很有前途; 或許,在未來的某個(gè)時(shí)候坤溃,它將成為大多數(shù)人使用的標(biāo)準(zhǔn)拍霜。 不幸的是,目前大多數(shù)NewSQL數(shù)據(jù)庫都是專有軟件或僅適用于特定場(chǎng)景薪介,這顯然限制了新技術(shù)的普及和應(yīng)用祠饺。

除此之外,NewSQL在每個(gè)方面比較均勻汁政,每個(gè)解決方案都有自己的缺點(diǎn)和優(yōu)勢(shì)道偷。 例如,SAP HANA可以輕松處理低到中等的事務(wù)性工作負(fù)載烂完,但不使用本機(jī)集群试疙,MemSQL對(duì)于集群分析很有用,但在ACID事務(wù)上表現(xiàn)出較差的一致性抠蚣,等等祝旷。 因此,在這些解決方案變得真正普及之前嘶窄,可能還需要一段時(shí)間怀跛。

結(jié)論

圍繞SQL有許多謬見和誤解:例如,SQL已過時(shí)柄冲,應(yīng)該盡可能替換為NoSQL或New SQL吻谋。 當(dāng)然,這不是真的现横。 目前漓拾,在三種基本替代方案中沒有明確的領(lǐng)導(dǎo)者 - 每一種都有更適合的項(xiàng)目,而在其他情況下不太適合(或完全不適合)戒祠。 因此骇两,沒有普遍的理想選擇。 例如姜盈,如果你主要考慮數(shù)據(jù)庫應(yīng)始終可用于接受新的內(nèi)容低千,則應(yīng)考慮最終一致性解決方案,如Cassandra或Riak馏颂。 如果你追求高速緩存SQL示血,新的緩存數(shù)據(jù)庫比如VoltDB似乎是明智的選擇; 等等。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末救拉,一起剝皮案震驚了整個(gè)濱河市难审,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亿絮,老刑警劉巖告喊,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拂铡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡葱绒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門斗锭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來地淀,“玉大人,你說我怎么就攤上這事岖是“锘伲” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵豺撑,是天一觀的道長烈疚。 經(jīng)常有香客問我,道長聪轿,這世上最難降的妖魔是什么爷肝? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮陆错,結(jié)果婚禮上灯抛,老公的妹妹穿的比我還像新娘。我一直安慰自己音瓷,他們只是感情好对嚼,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绳慎,像睡著了一般纵竖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杏愤,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天靡砌,我揣著相機(jī)與錄音,去河邊找鬼声邦。 笑死乏奥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亥曹。 我是一名探鬼主播邓了,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼媳瞪!你這毒婦竟也來了骗炉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤蛇受,失蹤者是張志新(化名)和其女友劉穎句葵,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乍丈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年剂碴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片轻专。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡忆矛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出请垛,到底是詐尸還是另有隱情催训,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布宗收,位于F島的核電站漫拭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏混稽。R本人自食惡果不足惜采驻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望匈勋。 院中可真熱鬧挑宠,春花似錦、人聲如沸颓影。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诡挂。三九已至碎浇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間璃俗,已是汗流浹背奴璃。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留城豁,地道東北人苟穆。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像唱星,于是被迫代替她去往敵國和親雳旅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容