程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> NewSQL初了解

NewSQL初了解

編輯:關於SqlServer

       NewSQL一詞是由451 Group的分析師Matthew Aslett在研究論文中提出的。它代指對老牌數據庫廠商做出挑戰的一類新型數據庫系統。NewSQL 是對各種新的可擴展/高性能數據庫的簡稱,這類數據庫不僅具有NoSQL對海量數據的存儲管理能力,還保持了傳統數據庫支持ACID和SQL等特性。

      分布式數據庫公司VoltDB的首席技術官Michael Stonebraker表示NoSQL數據庫可提供良好的擴展性和靈活性,但他們也有自己的不足。由於不使用SQL,NoSQL數據庫系統不具備高度結構化查詢等特性。NoSQL其他的問題還包括不能提供ACID(原子性、一致性、隔離性和耐久性)的操作。另外不同的NoSQL數據庫都有自己的查詢語言,這使得很難規范應用程序接口。Stonebraker表示數據庫系統的滯後通常可歸結於多項因素。諸如以恢復日志為目的的數據庫系統維持的緩沖區池,以及管理鎖定和鎖定的數據字段。在VoltDB的測試中發現以上這些行為消耗系統96%的資源。

      相對於NewSQL系統雖然在的內部結構變化很大,但是它們有兩個顯著的共同特點:(1)它們都支持關系數據模型,(2) 它們都使用SQL作為其主要的接口。已知的第一個NewSQL系統叫做H-Store,它是一個分布式並行內存數據庫系統。目前NewSQL系統大致分三類:

      新架構

      所述第一類型的NewSQL系統是完全新的數據庫平台,它們均采取了不同的設計方法。它們大概分兩類:

      (1) 這類數據庫工作在一個分布式集群的節點上,其中每個節點擁有一個數據子集。 SQL查詢被分成查詢片段發送給自己所在的數據的節點上執行。這些數據庫可以通過添加額外的節點來線性擴展。現有的這類數據庫有: Google Spanner, VoltDB, Clustrix, NuoDB.

      (2) 這些數據庫系統通常有一個單一的主節點的數據源。它們有一組節點用來做事務處理,這些節點接到特定的SQL查詢後,會把它所需的所有數據從主節點上取回來後執行SQL查詢,再返回結果。

      SQL引擎

      第二類是高度優化的SQL存儲引擎。這些系統提供了MySQL相同的編程接口,但擴展性比內置的引擎InnoDB更好。這類數據庫系統有:TokuDB, MemSQL。

      透明分片

      這類系統提供了分片的中間件層,數據庫自動分割在多個節點運行。這類數據庫包擴:ScaleBase,dbShards, Scalearc。

      那麼現有NewSQL系統廠商有哪些呢:

      我們將包括(順序隨機)Clustrix、GenieDB、ScalArc、Schooner、VoltDB、RethinkDB、ScaleDB、Akiban、CodeFutures、ScaleBase、Translattice和NimbusDB,以及 Drizzle、帶有 NDB的 MySQL 集群和帶有HandlerSocket的MySQL。後者包括Tokutek和JustOne DB。相關的“NewSQL作為一種服務”類別包括亞馬遜關系數據庫服務,微軟SQLAzure,Xeround和FathomDB。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved