《NewSQL與NoSQL的討論》

2021-09-04 12:16:13 字數 1875 閱讀 9771

newsql與nosql的討論》

現今,完全放棄傳統關聯式資料庫並忙於使用新興的nosql資料庫可能還不是乙個合理的選擇。相反改進後的sql(結構化查詢語言)系統可能會對一些技術細節進行調整。在8月23日加利福尼亞聖何塞市舉行的nosql 2011大會上分布式資料庫公司voltdb的首席技術官michael stonebraker表達了上述的觀點。

stonebraker所在公司本身提供的是基於newsql的資料庫軟體。他所倡導的新體系架構比傳統**商提供的資料庫軟體可承受更大的負載。stonebraker是ingres和postgres資料庫的總設計師。他還是vertica(面向列資料庫公司)的共同創始人,惠普已在2月份對vertica進行了收購。

相對於nosql蓬勃發展的情況基於sql的關係資料庫系統確實顯得有些死氣沉沉。但這是資料庫廠商的錯,而不是sql的錯。

stonebraker指出,當今大多數商業資料庫軟體已經在市場上存在30年或更長時間。他們的設計並沒有圍繞自動化、資料沉重性以及事務性環境。同時在這幾十年中不斷發展出的新功能並沒有想象中的那麼好。

stonebraker表示資料庫系統的滯後通常可歸結於多項因素。諸如以恢復日誌為目的的資料庫系統維持的緩衝區池,以及管理鎖定和鎖定的資料字段。在voltdb的測試中發現以上這些行為消耗系統96%的資源。

許多新興的nosql資料庫的普及,例如mongndb和cassandra。這很好的彌補了傳統資料庫系統的侷限性。顧問dan mccreary表示關聯式資料庫的缺點刺激了開發人員建立出nosql資料庫。關聯式資料庫不是很靈活,其基本架構設計還是穿孔卡片時代,這反映了嚴格的資料建模方式。如果乙個組織需要新增另一列的資料,他們必須改變架構,這可能相當棘手。建模過程中建立的關係表(實體模型)也並不總是能夠準確的反應資料在現實世界中是如何存在的。

mccreary同時指出sql資料庫的另乙個問題是其不具備很好的伸縮性。當資料增長超過一台伺服器所能承受的極限時,就必須分享或分割資料到多台伺服器上,跨越多台伺服器是乙個複雜的過程。此外如外部鏈結帶來的問題。例如多個表中資料的融合,跨越伺服器執行一些操作可能會產生一些問題。

stonebraker認為nosql資料庫可提供良好的擴充套件性和靈活性,但他們也有自己的不足。由於不使用sql,nosql資料庫系統不具備高度結構 化查詢等特性。nosql其他的問題還包括不能提供acid(原子性、一致性、隔離性和耐久性)的操作。另外不同的nosql資料庫都有自己的查詢語言, 這使得很難規範應用程式介面。

stonebraker表示newsql可提供sql獨有的一些特性,同時還具備nosql的擴充套件性。newsql具備乙個新的架構設計,他釋放了主記憶體 執行的資料庫中消耗系統資源的緩衝池。voltdb系統使用了newsql創新的體系架構,在執行交易時可比傳統關聯式資料庫快45倍。voltdb可擴充套件 伺服器數量為39個,並可以每秒處理160萬個交易(300個cpu核心)。而具備同樣處理能力的hadoop則需要更多的伺服器。例如做相同的任 務,voltdb需要20個節點的任務,hadoop執行起來則需要1000個節點。

doubleclick創始人和mongodb創始人之一dwight merriman與stonebraker一致認為sql本身並不是導致可擴充套件性和低效能的根源。但dwight merriman同時表示在未來的歲月裡,可能不是所有人都願意使用sql分析和查詢他們的資料。因為對於程式設計師來說,基於sql的儲存過程是特別困難的工作。

最後mccreary也同意stonebraker的看法,nosql沒有乙個統一的查詢語言,這將拖慢nosql的發展。但他建議在新的資料庫系統統一查詢工具使用乙個sql以外的語言。如xquery,乙個xml文件查詢語言。

RDBMS與NOsql的區別

關係型資料庫 關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯...

NoSql與RDBMS的對比

nosql出現的原因是因為有很多應用不需要使用rdbms的特性 強一致性以及join查詢 而這些特性還成為了阻礙 如join限制了分片等 以下對比了兩種資料庫的特性,以便於更好地進行技術選型。特性rdbms nosql 強一致事務 支援,acid特性 不支援,base特性 sql語句 跨表join ...

NoSql與Redis的學習

nosql nosql not only sql 意即 不僅僅是sql 是一項全新的資料庫理念,泛指非關係型的資料庫。nosql是非關係型資料庫 mysql oracle 關係型資料庫 redis 就是nosql 非關係型資料庫 關係型資料庫特點 mysql oracle sqlserver 非關係...