風向標:數據庫技術趨勢解讀
目錄:
-
DB-Engines數據庫排行榜解讀
-
SQL、NoSQL及NewSQL的發展曆程
-
感謝名單
DB-Engines數據庫排行榜解讀
以下取自2016年12月的數據,具體信息可參考https://db-engines.com/en/ranking/
DB-Engines排名主要根據五個因素來進行:Google以及Bing搜索引擎的關鍵字搜索數量、Google Trends的搜索數量、Indeed網站中的職位搜索量、LinkedIn中提到關鍵字的個人資料數以及Stackoverflow上相關的問題和關注者數量,數據僅供參考。
從最新一期榜單來看,數據庫產品前三甲非常穩固,與後麵差距依然很大。傳統商業數據庫的代表Oracle,依舊獨占鼇頭,但也受到了其他數據庫的逐步蠶食。
很多人預計在明年Q1,MySQL將超過Oracle占領首位。MySQL作為開源數據庫的代表,持續在增長,但隨著市場穩定已逐步趨於飽和,增長趨緩。
SQL Server作為另類代表,增長喜人。其不久前宣布的未來將支持Linux版本的消息,應該起到了不少提振作用,我們也很期待它在未來的表現。
前十名中以PostgreSQL、MongoDB、Cassandra、Redis為代表的開源數據庫,各自有其獨家絕技,長期來看仍然持續上漲。
其中值得重點關注的PostgreSQL、MongoDB。PostgreSQL曾是關係型數據庫的學院派代表,近些年更是演化為“全麵手”,社區活躍,發展十分迅勐。MongoDB作為NoSQL陣營裏最為接近關係型數據庫的代表,發展也很不錯。未來不排除這兩者出現可挑戰前三甲的可能。
前十名中其餘產品如DB2、Access等老牌產品,不可避免地出現下滑,未來堪憂。
十到二十名範圍內,則是百花齊放,排名變化頻繁。值得關注的是Elasticsearch,發展不錯,已接近第十名,很有希望衝入十名之內。
從產品類別角度來看,關係型數據庫仍然占絕對主導(前二十名中占了十三位)。其他領域各有優秀代表進入其中,文檔型數據庫的MongoDB、KV型數據庫的Redis、搜索引擎的Elasticsearch、列式存儲的HBase等。
SQL、NoSQL及NewSQL的發展曆程
上世紀70年代提出了關係型數據庫的概念,後來在關係型數據庫上設計了一套相應的結構化查詢語言稱之為SQL,在之後的發展中又引入了事務也就是ACID的概念,SQL類或者說傳統的關係型數據庫最典型的一些產品有DB2、Oracle、SQLServer以及開源的MySQL、PostgreSQL等,這一代數據庫的產品的特點可以理解為強ACID、且支持SQL接口。但這一代數據往往是單機版本,即使有的支持集群其擴展能力也很有限。
隨著互聯網的發展,很多應用的數據量也越來越大,傳統的數據庫在數據量越來越大的情況下性能等各方麵往往也會出現明顯的下降,所以後來又有了NoSQL的概念。這個概念其實很早就有,但在2009年左右開始變得比較火,NoSQL的概念主要是指非關係型的、不提供ACID的一種數據庫設計理念。這個理念基礎之上,很容易提供分布式解決方案,從而比較容易解決原來傳統的SQL產品麵臨的一些問題。NoSQL類產品比較典型的有像Redis、MemchacheDB、HBase、Cassandra、Bigtable、LevelDB等,這類產品一般是根據Key來操作相應的Value,有些產品的Value會比較簡單,有些會稍微複雜一些。
NoSQL類產品發展非常迅速,以至於曾經有一段時間大家覺得可能SQL類產品會很快退出曆史舞台。隨著NoSQL廣泛使用以後,大家也發現NoSQL類的產品雖然操作簡單,但在使用的時候應用層麵要考慮的事情比較多,因為SQL改NoSQL很多東西都需要在應用層做拆分及匯總,開發人員心智負擔比較重,主要體現在開發的代價會大一點,所以在這同一時期甚至更早一些的時候,大家也有在研究分布式的SQL解決方案。
分布式的SQL解決方案簡單的說就是像使用傳統的SQL產品一樣來使用分布式的數據庫產品,最典型的就是一些分庫分表的解決方案。這些方案有的是在應用層麵,按照一定的規則將數據進行拆分;也有的是通過引入兼容相關SQL傳輸協議的中間層透明的完成這種拆分工作,比如典型的一些開源產品有Cobar、Vitess等。
這種方案有些人也會將其歸屬到NewSQL的範疇,其實分庫分表的分布式SQL解決方案已經可以滿足絕大多數的業務需求,但是有一個不足點是從整體來看這種方式拆分以後的SQL解決方案在一個事務上下文中如果涉及到多個分片時候往往不能保證嚴格的事務的ACID屬性。
後來,Google在2012、2013年分別發表了Spanner和F1的論文,告訴業界自己實現了一套既滿足SQL,又滿足事務的ACID屬性;同時又將NoSQL的分布式特性集合到一起的一種實現方式,這也是大家比較認同的一種全新架構的NewSQL。當前比較典型的一些NewSQL產品,比如像Google的F1/Spanner、阿裏的OceanBase以及開源的cockroachdb、Tidb等。NewSQL還需要更多生產環境的檢驗。
以上就是大體的一個SQL、NoSQL及NewSQL的發展曆程。
下麵,我們會分別將RDBMS、NoSQL、NewSQL、大數據生態圈、Docker、國產數據庫這六大範疇的最新技術發展內容細分到不同版塊中呈現,請點擊相應版塊進行閱讀。
感謝名單
感謝本期提供寶貴信息和建議的專家朋友,排名不分先後。
原文發布時間為:2016-12-23
本文來自雲棲社區合作夥伴DBAplus
最後更新:2017-05-13 08:42:15