偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

關(guān)系型數(shù)據(jù)庫(kù)尚能飯否?NoSQL、NewSQL誰能接棒?

數(shù)據(jù)庫(kù) 新聞
數(shù)據(jù)的積累是當(dāng)今各行各業(yè)巨頭的企業(yè)財(cái)富,數(shù)據(jù)庫(kù)則是數(shù)據(jù)存儲(chǔ)的重要途徑。在大數(shù)據(jù)和微服務(wù)大行其道的今天,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)也將迎來變革。云原生的數(shù)據(jù)庫(kù)架構(gòu)受到越來越多的關(guān)注,所以我想和大家一起來聊聊云原生數(shù)據(jù)架構(gòu)。

數(shù)據(jù)的積累是當(dāng)今各行各業(yè)巨頭的企業(yè)財(cái)富,數(shù)據(jù)庫(kù)則是數(shù)據(jù)存儲(chǔ)的重要途徑。在大數(shù)據(jù)和微服務(wù)大行其道的今天,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)也將迎來變革。云原生的數(shù)據(jù)庫(kù)架構(gòu)受到越來越多的關(guān)注,所以我想和大家一起來聊聊云原生數(shù)據(jù)架構(gòu)。本文作為上篇,會(huì)先對(duì)當(dāng)下各類數(shù)據(jù)庫(kù)發(fā)展現(xiàn)狀進(jìn)行分析。

一、關(guān)系型數(shù)據(jù)庫(kù)尚能飯否?

關(guān)系型數(shù)據(jù)庫(kù)出現(xiàn)至今的幾十年時(shí)間里,一直是數(shù)據(jù)庫(kù)領(lǐng)域的佼佼者。下圖是全球較為權(quán)威的DB-Engines的統(tǒng)計(jì)排名,排名主要依據(jù)Google以及Bing搜索引擎的關(guān)鍵字搜索數(shù)量、從業(yè)人數(shù)信息、職位搜索量、Stack Overflow上提問關(guān)注數(shù)量等:

 

 

DB-Engines 2018年6月公布的數(shù)據(jù)庫(kù)排名

截止至2018年6月,排名前6位的數(shù)據(jù)庫(kù),僅有排名第5的MongoDB是文檔型數(shù)據(jù)庫(kù),其余全部是關(guān)系型數(shù)據(jù)庫(kù),且前3位所占有的比重遠(yuǎn)遠(yuǎn)領(lǐng)先于其后的其他數(shù)據(jù)庫(kù)。

1、優(yōu)勢(shì)

關(guān)系型數(shù)據(jù)庫(kù)在經(jīng)過大數(shù)據(jù)、NoSQL以及NewSQL等技術(shù)革新的輪番轟炸之后依然堅(jiān)挺,與其固有的優(yōu)勢(shì)密不可分。它的優(yōu)勢(shì)主要體現(xiàn)在對(duì)開發(fā)人員、運(yùn)維人員以及系統(tǒng)本身這3個(gè)方面的影響。

開發(fā)優(yōu)勢(shì)

對(duì)于開發(fā)人員來說,關(guān)系型數(shù)據(jù)庫(kù)的首要優(yōu)勢(shì)是面向SQL。

SQL是關(guān)系型數(shù)據(jù)庫(kù)的結(jié)構(gòu)化查詢語言,雖然不同的關(guān)系型數(shù)據(jù)庫(kù)有不同的SQL方言,但基于ANSI標(biāo)準(zhǔn)的SQL是大部分關(guān)系型數(shù)據(jù)庫(kù)都支持的。且SQL是面向數(shù)據(jù)庫(kù)的訪問語言,可以非常方便的對(duì)數(shù)據(jù)庫(kù)進(jìn)行增、刪、改、查以及授權(quán)和管理。SQL的查詢靈活度非常高,可以十分便捷的在聯(lián)機(jī)事務(wù)處理(OLTP)與聯(lián)機(jī)分析處理(OLAP)之間轉(zhuǎn)換。

此外,SQL是應(yīng)用開發(fā)工程師所必須掌握的一門編程語言,流行度非常廣泛,招聘到一個(gè)完全不會(huì)寫SQL的應(yīng)用開發(fā)程序員的概率非常小。因此,SQL極大降低了開發(fā)人員招聘的成本。

除了SQL語言本身,各種開發(fā)語言對(duì)關(guān)系型數(shù)據(jù)庫(kù)的支持也十分完善。以Java舉例:JDBC是Java語言訪問數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)接口,各個(gè)關(guān)系型數(shù)據(jù)庫(kù)廠商均提供了實(shí)現(xiàn)JDBC接口的驅(qū)動(dòng)程序。使用Java語言開發(fā)的工程師無需感知不同關(guān)系型數(shù)據(jù)庫(kù)間的差異,只要根據(jù)JDBC接口編程即可。

由于面向關(guān)系的數(shù)據(jù)庫(kù)存儲(chǔ)與面向?qū)ο蟮腏ava程序不易一一對(duì)應(yīng),產(chǎn)生了很多對(duì)象關(guān)系映射(ORM)框架用于簡(jiǎn)化關(guān)系對(duì)象模型的阻抗不匹配,如JPA及其官方實(shí)現(xiàn)Hibernate、MyBatis、Jooq等,進(jìn)一步簡(jiǎn)化了應(yīng)用工程師的日常開發(fā)工作。ORM框架大多是采用JDBC封裝,對(duì)各個(gè)關(guān)系型數(shù)據(jù)庫(kù)的兼容性非常高。

運(yùn)維優(yōu)勢(shì)

關(guān)系型數(shù)據(jù)庫(kù)由于存在時(shí)間長(zhǎng)久,針對(duì)每一種常見的關(guān)系型數(shù)據(jù)庫(kù),都能較容易地招聘到相應(yīng)的數(shù)據(jù)庫(kù)管理員(DBA),以保證關(guān)系型數(shù)據(jù)庫(kù)的穩(wěn)定性、安全性、完整性以及性能,同時(shí)保證監(jiān)控和分析關(guān)系型數(shù)據(jù)庫(kù)的系統(tǒng)瓶頸以及設(shè)計(jì)的合理性。

成熟的關(guān)系型數(shù)據(jù)庫(kù)都有自己完善的生態(tài)圈,用于保證高可用、數(shù)據(jù)備份、性能監(jiān)測(cè)分析等成熟的配套工具。規(guī)模較大的企業(yè)及重要業(yè)務(wù)系統(tǒng)一般都需要專門的DBA進(jìn)行運(yùn)維工作。

系統(tǒng)優(yōu)勢(shì)

只有時(shí)間才是檢驗(yàn)技術(shù)的成熟與穩(wěn)定的標(biāo)準(zhǔn)。關(guān)系型數(shù)據(jù)庫(kù)經(jīng)歷了幾十年的考驗(yàn),已經(jīng)有超大規(guī)模的使用,其存儲(chǔ)引擎已經(jīng)十分成熟。基于MVCC的數(shù)據(jù)庫(kù)引擎在性能和正確性上做到了很好的平衡,并且通過B+tree索引大幅提升了查詢的效率。面對(duì)數(shù)據(jù)這樣的關(guān)鍵節(jié)點(diǎn),謹(jǐn)慎的選用關(guān)系型數(shù)據(jù)庫(kù)是架構(gòu)師們的***方案。

基于ACID的事務(wù)是關(guān)系型數(shù)據(jù)庫(kù)帶給應(yīng)用系統(tǒng)的又一強(qiáng)力保障。ACID指數(shù)據(jù)庫(kù)事務(wù)能夠正確執(zhí)行的四個(gè)基本要素的首字母縮寫。它包括原子性、一致性、隔離性和持久性。只有支持事務(wù)的數(shù)據(jù)庫(kù)才能***限度的保證數(shù)據(jù)的正確性和完整性:

  • 原子性(Atomicity)。位于同一事務(wù)中的所有操作,要么全部完成(提交),要么全部不完成(回滾),不能停滯在某個(gè)中間環(huán)節(jié)。如果事務(wù)在執(zhí)行過程中發(fā)生錯(cuò)誤,數(shù)據(jù)將會(huì)恢復(fù)到事務(wù)開始前的狀態(tài)。
  • 一致性(Consistency)。非只讀的事務(wù)應(yīng)封裝數(shù)據(jù)庫(kù)的狀態(tài)從一個(gè)一致狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€(gè)一致狀態(tài)。一致狀態(tài)是指數(shù)據(jù)庫(kù)中的數(shù)據(jù)應(yīng)滿足完整性約束,并且事務(wù)的中間狀態(tài)不應(yīng)在事務(wù)之外被感知。
  • 隔離性(Isolation)。多事務(wù)并發(fā)執(zhí)行時(shí),不應(yīng)相互影響其他事務(wù),就像只有這一個(gè)操作在并行的被數(shù)據(jù)庫(kù)執(zhí)行一樣。
  • 持久性(Durability)。事務(wù)完成后,該事務(wù)對(duì)數(shù)據(jù)庫(kù)的所有更改將持久的保存在數(shù)據(jù)庫(kù)中。

在編程中使用事務(wù)也并非難事,各類如Spring之類的開發(fā)框架已經(jīng)在面向切面(AOP)層面將其做的十分簡(jiǎn)單和優(yōu)雅了。

2、不足

關(guān)系型數(shù)據(jù)庫(kù)的性能和訪問承載能力,在面向單一數(shù)據(jù)節(jié)點(diǎn)的企業(yè)級(jí)應(yīng)用時(shí)代是無可挑剔的。但在訪問量和數(shù)據(jù)量急劇膨脹的今天,關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)很難再像以前那樣成為如此巨大規(guī)模系統(tǒng)的底層支撐,甚至成為了應(yīng)用系統(tǒng)的瓶頸所在。

關(guān)系型數(shù)據(jù)庫(kù)主要有以下三處不足:

  • 單節(jié)點(diǎn)并發(fā)訪問量受限。在服務(wù)任意擴(kuò)容和拆分的同時(shí),由于數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)是有狀態(tài)的,因此很難像服務(wù)一樣任意拆分和擴(kuò)容。單一的數(shù)據(jù)庫(kù)節(jié)點(diǎn)承載大量的服務(wù)節(jié)點(diǎn)的查詢和更新請(qǐng)求,這并非一個(gè)對(duì)等的架構(gòu)部署模式。
  • 單節(jié)點(diǎn)數(shù)據(jù)承載量受限。單一數(shù)據(jù)庫(kù)節(jié)點(diǎn)對(duì)數(shù)據(jù)的承載能力是有限的。數(shù)據(jù)量越大,用于查詢數(shù)據(jù)所創(chuàng)建的索引的深度就越深。索引深度決定IO訪問的次數(shù),索引深度越深,查找越慢。
  • 分布式事務(wù)性能衰退嚴(yán)重。將數(shù)據(jù)庫(kù)拆分之后,需要使用分布式事務(wù)代替本地事務(wù)?;赬A的分布式事務(wù)采用兩階段提交,在準(zhǔn)備階段即鎖定資源,直至整個(gè)事務(wù)結(jié)束。在系統(tǒng)并發(fā)度增加時(shí),性能會(huì)急劇衰退。

綜上所述,關(guān)系型數(shù)據(jù)庫(kù)的不足,歸根結(jié)底是設(shè)計(jì)初衷導(dǎo)致的。它并非分布式的產(chǎn)物,對(duì)分布式系統(tǒng)的天生不友好,導(dǎo)致它很難適應(yīng)互聯(lián)網(wǎng)的架構(gòu)模型。面對(duì)可以隨時(shí)彈性擴(kuò)容的無狀態(tài)服務(wù),關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)略顯笨重。

二、未達(dá)預(yù)期的NoSQL

隨著關(guān)系型數(shù)據(jù)庫(kù)的不足之處暴露得越來越明顯,NoSQL的出現(xiàn)成為了有益補(bǔ)充。不過NoSQL并非為了取代關(guān)系型數(shù)據(jù)庫(kù),而是指Not Only SQL,提供了在SQL之外的另一種選擇。

NoSQL有很多種分類,大致包括鍵值數(shù)據(jù)庫(kù)、文檔數(shù)據(jù)庫(kù)、列族數(shù)據(jù)庫(kù)以及圖數(shù)據(jù)庫(kù)等,用于解決各異的場(chǎng)景。

1、鍵值數(shù)據(jù)庫(kù)

鍵值數(shù)據(jù)庫(kù)的代表是Redis。它在很多場(chǎng)景下都作為緩存使用,但Redis也同樣提供落盤功能。面對(duì)通過主鍵查詢的場(chǎng)景,Redis的效率非常高,但對(duì)于內(nèi)容的查詢,則無能為力。

Redis提供了集群的能力,可以將數(shù)據(jù)分散至不同的節(jié)點(diǎn),有效的分散了單一節(jié)點(diǎn)的訪問量瓶頸。如果在內(nèi)存中無法加載Redis的全部數(shù)據(jù)而導(dǎo)致落盤,Redis的性能將有所下降,因此在數(shù)據(jù)量較大的情況下,將Redis的數(shù)據(jù)根據(jù)主鍵進(jìn)行分片是不錯(cuò)的解決方案。

Redis通過MULTI、EXEC、DISCARD以及WATCH命令提供事務(wù)功能。Redis事務(wù)提供一次性的、按順序的、且不可中斷的執(zhí)行命令的機(jī)制。但即使事務(wù)中的部分命令執(zhí)行失敗也無法回滾,因此Redis的事務(wù)與數(shù)據(jù)庫(kù)領(lǐng)域中的事務(wù)并非是一一對(duì)應(yīng)的關(guān)系。

2、文檔數(shù)據(jù)庫(kù)

文檔數(shù)據(jù)庫(kù)的代表是MongoDB。文檔模型與面向?qū)ο蟮臄?shù)據(jù)表達(dá)方式更加接近,它擁有自由度極高的Schema模型,可以方便的與JSON數(shù)據(jù)映射。

文檔數(shù)據(jù)庫(kù)的設(shè)計(jì)理念與關(guān)系型數(shù)據(jù)庫(kù)完全不同,它沒有靜態(tài)定義的表結(jié)構(gòu),而是可以靈活在文檔中隨意增減屬性以及嵌入子文檔和數(shù)組。因此面向文檔數(shù)據(jù)庫(kù)設(shè)計(jì)應(yīng)用程序,應(yīng)是以對(duì)象本身為主,而不是優(yōu)先考慮數(shù)據(jù)庫(kù)表結(jié)構(gòu)如何定義。這種設(shè)計(jì)使得開發(fā)工程師在修改程序邏輯時(shí)十分方便,無需考慮數(shù)據(jù)庫(kù)表結(jié)構(gòu)的變更導(dǎo)致的鎖表等問題。

MongoDB的查詢維度十分靈活,可以根據(jù)需要查找的內(nèi)容建立索引以提升效率。此外,MongoDB在分布式的表現(xiàn)上也遠(yuǎn)強(qiáng)于關(guān)系型數(shù)據(jù)庫(kù),它可以將數(shù)據(jù)自動(dòng)分片,并且能夠透明化分片之間的負(fù)載均衡和失效轉(zhuǎn)移。它還內(nèi)置GridFS,支持大數(shù)據(jù)集的存儲(chǔ)。

但是MongoDB無法像關(guān)系型數(shù)據(jù)庫(kù)那樣支持ACID事務(wù),而是使用最終一致性事務(wù),因此不建議將MongoDB用于非常關(guān)鍵的如訂單、交易、賬務(wù)等業(yè)務(wù)系統(tǒng),而是用于論壇等對(duì)數(shù)據(jù)事務(wù)要求級(jí)別低一些的業(yè)務(wù)系統(tǒng)中。

3、列族數(shù)據(jù)庫(kù)

列族數(shù)據(jù)庫(kù)的代表是位于Hadoop大數(shù)據(jù)體系中的HBase。它是專門用于處理海量數(shù)據(jù)的分布式數(shù)據(jù)庫(kù)。

HBase通過行主鍵和列族來確定一條記錄,每個(gè)列族中的屬性是不固定的,這一點(diǎn)與文檔數(shù)據(jù)庫(kù)類似。HBase同樣能夠自動(dòng)切分?jǐn)?shù)據(jù),使得數(shù)據(jù)存儲(chǔ)自動(dòng)具有水平擴(kuò)展的能力。HBase的數(shù)據(jù)存儲(chǔ)在HDFS這樣的分布式文件系統(tǒng)中,對(duì)于海量數(shù)據(jù)的支持是***的。

HBase采用LSM Tree (Log-Structured Merge-Tree)。它將對(duì)數(shù)據(jù)的更改放在內(nèi)存中,達(dá)到指定的閾值后再將更改歸并后批量寫入磁盤,將單個(gè)寫操作轉(zhuǎn)換為批量寫操作,幅大提升寫入速度。但在讀取數(shù)據(jù)時(shí),HBase則需要分別查找內(nèi)存和磁盤中的數(shù)據(jù),對(duì)性能產(chǎn)生一定影響。因此Hbase更加適合寫多讀少的應(yīng)用。另外,Hbase同樣不支持ACID事務(wù),并且只能通過行鍵來查詢數(shù)據(jù)。

圖數(shù)據(jù)庫(kù)是用于處理圖關(guān)系的數(shù)據(jù)庫(kù),用于特殊場(chǎng)景,因此這里便不再介紹。

總的來說,NoSQL數(shù)據(jù)庫(kù)的種類繁多,分別適合用于不同的場(chǎng)景。我們通過下表簡(jiǎn)單對(duì)比一下前文介紹的三種類型NoSQL數(shù)據(jù)庫(kù):

 

 

雖然各種NoSQL的使用場(chǎng)景有很大差別,但它們大多很好地支持了分布式數(shù)據(jù)庫(kù)所需要的分片和數(shù)據(jù)遷移等功能,在海量數(shù)據(jù)和大并發(fā)的支持方面,強(qiáng)于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)。

NoSQL數(shù)據(jù)庫(kù)雖然可以提供良好的擴(kuò)展性和靈活性,但它們的不足卻是十分明顯的:

不同的NoSQL數(shù)據(jù)庫(kù)都有自己的查詢語言,相比于SQL,制定應(yīng)用程序標(biāo)準(zhǔn)接口難上加難。并且NoSQL也無法提供ACID的事務(wù)的操作,因此很多企業(yè)無法放心的將NoSQL應(yīng)用于核心業(yè)務(wù)系統(tǒng)中。

正如NoSQL的定義所說,它們僅僅是基于SQL的關(guān)系型數(shù)據(jù)庫(kù)的有益補(bǔ)充,而非關(guān)系型數(shù)據(jù)庫(kù)的替代者。

三、冉冉升起的NewSQL

由于SQL和ACID事務(wù)實(shí)在太過于深入人心,而分布式數(shù)據(jù)庫(kù)的需求又***的旺盛,因此另一種數(shù)據(jù)庫(kù),NewSQL就應(yīng)運(yùn)而生了。

NewSQL是對(duì)各種具有分布式可擴(kuò)展的數(shù)據(jù)庫(kù)的簡(jiǎn)稱,它繼承了NoSQL對(duì)海量數(shù)據(jù)的處理能力,同時(shí)還保持了傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)對(duì)SQL和ACID事務(wù)的支持。NewSQL的關(guān)注重點(diǎn)在于混合式(Hybrid)數(shù)據(jù)庫(kù),它們更傾向于找尋不再區(qū)分OLTP與OLAP查詢的多模式數(shù)據(jù)庫(kù)架設(shè)方案。

在2016年,Andrew Pavlo與Matthew Aslett發(fā)布了一篇論文:《What’s Really New with NewSQL?》,在文章他們將NewSQL劃分為3個(gè)大類:新架構(gòu)(New Architecture)、透明化分片中間件(Transparent Sharding Middleware)和云數(shù)據(jù)庫(kù)(Database-as-a-Service)。

論文參考鏈接:

https://db.cs.cmu.edu/papers/2016/pavlo-newsql-sigmodrec2016.pdf

1、新架構(gòu)

這一類NewSQL是全新的面向分布式的架構(gòu)設(shè)計(jì)的數(shù)據(jù)庫(kù)系統(tǒng)。

它們一般使用share-nothing的架構(gòu),支持多節(jié)點(diǎn)并發(fā)控制、高度容錯(cuò)的自動(dòng)化數(shù)據(jù)副本復(fù)制、流控以及分布式查詢處理等特征。

由于它們是天生面向分布式多節(jié)點(diǎn)而設(shè)計(jì)的系統(tǒng),因此對(duì)于查詢優(yōu)化和節(jié)點(diǎn)間的通信協(xié)議等處理的更加出色。舉例來說,NewSQL的數(shù)據(jù)庫(kù)的多數(shù)據(jù)節(jié)點(diǎn)間可以直接通信,而無需依賴中心節(jié)點(diǎn)。

除了Google的Spanner,其他類似的數(shù)據(jù)庫(kù)都需要自行管理數(shù)據(jù)在磁盤和內(nèi)存中的存儲(chǔ)與分布。這意味著該類型的數(shù)據(jù)庫(kù)系統(tǒng)負(fù)責(zé)將查詢發(fā)送到數(shù)據(jù)節(jié)點(diǎn),而不是將數(shù)據(jù)復(fù)制到請(qǐng)求節(jié)點(diǎn)以減少網(wǎng)絡(luò)傳輸。

由于采用了全新的架構(gòu)設(shè)計(jì)和存儲(chǔ)引擎,并未充分經(jīng)過時(shí)間驗(yàn)證,所以企業(yè)的技術(shù)選型者們格外的謹(jǐn)慎。同時(shí),又因?yàn)橛羞\(yùn)維新一代NewSQL經(jīng)驗(yàn)的工程師數(shù)量也較少,所以相比于關(guān)系型數(shù)據(jù)庫(kù),當(dāng)前的使用者還相對(duì)小眾。很多企業(yè)目前都會(huì)嘗試跟進(jìn)全新架構(gòu)的NewSQL,但尚未遷移核心系統(tǒng)。

最典型的新架構(gòu)類型的產(chǎn)品是Google的Spanner以及國(guó)產(chǎn)數(shù)據(jù)庫(kù)TiDB。

2、透明化分片中間件

透明化分片數(shù)據(jù)庫(kù)中間件允許應(yīng)用將數(shù)據(jù)分片寫入多數(shù)據(jù)節(jié)點(diǎn),但數(shù)據(jù)節(jié)點(diǎn)仍然采用面向單數(shù)據(jù)節(jié)點(diǎn)的關(guān)系型數(shù)據(jù)庫(kù)。透明化分片中間件使用中心組件用來路由數(shù)據(jù)操作請(qǐng)求、協(xié)調(diào)事務(wù)、管理數(shù)據(jù)分布及復(fù)制數(shù)據(jù)副本。整個(gè)集群對(duì)外是一個(gè)邏輯實(shí)例,應(yīng)用往往無需改動(dòng)即可平滑使用。

透明化分片數(shù)據(jù)庫(kù)中間件的核心優(yōu)勢(shì)是兼容性,它可以成本較低地在系統(tǒng)現(xiàn)有的單機(jī)關(guān)系型數(shù)據(jù)庫(kù)與分片中間件之間切換,而無需開發(fā)者做任何代碼上的改動(dòng)。它們旨在充分合理地在分布式的場(chǎng)景下利用傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的計(jì)算和存儲(chǔ)能力,而并非實(shí)現(xiàn)一個(gè)全新的關(guān)系型數(shù)據(jù)庫(kù)。

這樣既可利用傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的穩(wěn)定性和兼容性,又可在其基礎(chǔ)之上增加分布式場(chǎng)景的處理。在原有基礎(chǔ)上增量而非顛覆是這類NewSQL產(chǎn)品的核心理念。由于開源及流行度的原因,基于MySQL協(xié)議的數(shù)據(jù)庫(kù)中間件是最為普遍的。

由于基于單數(shù)據(jù)節(jié)點(diǎn)的傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)是面向磁盤設(shè)計(jì)的,對(duì)于基于內(nèi)存的存儲(chǔ)管理及并發(fā)控制,不如重新設(shè)計(jì)的面向分布式的新架構(gòu)NewSQL那樣,能夠更加高效的利用。另外,SQL解析、查詢計(jì)劃優(yōu)化等工作在中間件和數(shù)據(jù)庫(kù)中將會(huì)重復(fù)工作,使得整體運(yùn)行效率略遜于全新設(shè)計(jì)的NewSQL。

在國(guó)內(nèi)的大中型互聯(lián)網(wǎng)公司中,這類NewSQL十分流行,每個(gè)公司都基本有自己的數(shù)據(jù)庫(kù)中間件。但由于和公司內(nèi)部的業(yè)務(wù)系統(tǒng)耦合較重,成熟的開源產(chǎn)品較少,我們之后將討論到的Sharding-Sphere生態(tài)圈中的Sharding-Proxy即屬于這類NewSQL產(chǎn)品。

3、云數(shù)據(jù)庫(kù)

***一種類型的NewSQL,是由云計(jì)算公司所提供的云數(shù)據(jù)庫(kù)產(chǎn)品。云數(shù)據(jù)庫(kù)的使用方無需自行維護(hù)數(shù)據(jù)庫(kù)及其硬件,而是全部數(shù)據(jù)托管至云平臺(tái)所提供的服務(wù)。使用方通過數(shù)據(jù)庫(kù)的URL連接至云端數(shù)據(jù)庫(kù),并通過API或操作儀表盤去操作和監(jiān)控系統(tǒng)即可。

云數(shù)據(jù)庫(kù)使用成本***,工程師完全無需考慮數(shù)據(jù)庫(kù)的任何細(xì)節(jié)問題。對(duì)中小型公司來說是理想的解決方案,但對(duì)于擁有巨大數(shù)據(jù)體量的公司來說,采用前兩種NewSQL的開源或自研方案更加合適。

亞馬遜所提供的Aurora即為這類NewSQL的典型應(yīng)用。

總的來看,NewSQL雖然尚未成熟,但確是面向未來的正確嘗試。三種類型NewSQL數(shù)據(jù)庫(kù)的關(guān)注點(diǎn)各不相同,新架構(gòu)類型數(shù)據(jù)庫(kù)的關(guān)注點(diǎn)是徹底的革新;透明化分片數(shù)據(jù)庫(kù)中間件的關(guān)注點(diǎn)是增量;而云數(shù)據(jù)庫(kù)則更加關(guān)注屏蔽用戶使用細(xì)節(jié)。

雖然不同類型各有千秋,但它們的核心功能是類似的。無論哪一種NewSQL,混合式(Hybrid)數(shù)據(jù)庫(kù)將是未來的發(fā)展方向,當(dāng)OLTP與OLAP不再區(qū)分,將會(huì)極大地降低開發(fā)成本。

至此,我們就基本理清了當(dāng)下各類數(shù)據(jù)庫(kù)發(fā)展現(xiàn)狀,下一篇文章我會(huì)詳細(xì)說明面向云原生的數(shù)據(jù)庫(kù)的核心功能特征。有相關(guān)思考的同學(xué)也歡迎留言交流。 

責(zé)任編輯:龐桂玉 來源: DBAplus社群
相關(guān)推薦

2020-09-04 06:29:08

數(shù)據(jù)庫(kù)NoSQLNewSQL

2023-12-21 13:56:41

PHP語言程序員

2018-11-12 08:30:47

IT技術(shù)面試

2011-06-29 09:02:13

C++

2018-01-29 12:56:27

數(shù)據(jù)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)NewSQL

2017-01-04 16:18:05

非數(shù)據(jù)庫(kù)NoSql關(guān)系型數(shù)據(jù)庫(kù)

2019-07-03 10:00:16

NoSQLNewSQL數(shù)據(jù)庫(kù)

2018-05-07 09:30:41

數(shù)據(jù)庫(kù)NoSQLNewSQL

2015-11-24 15:17:57

谷歌回歸中國(guó)

2023-09-05 10:25:35

數(shù)據(jù)庫(kù)性能

2018-07-18 09:16:39

關(guān)系型非關(guān)系型數(shù)據(jù)庫(kù)

2018-12-24 18:35:11

NoSQLRedisMongoDB

2021-09-06 10:24:12

鴻蒙HarmonyOS應(yīng)用

2009-07-10 09:28:41

NoSQL關(guān)系數(shù)據(jù)庫(kù)

2012-02-01 16:26:04

NoSQLMoreSQL數(shù)據(jù)庫(kù)

2011-09-27 10:44:07

NewSQL云計(jì)算

2017-03-17 14:44:04

關(guān)系型數(shù)據(jù)庫(kù)原理

2010-12-10 10:17:21

關(guān)系型數(shù)據(jù)庫(kù)

2022-06-13 08:30:01

數(shù)據(jù)庫(kù)管理系統(tǒng)

2015-10-22 10:52:34

NoSQL數(shù)據(jù)庫(kù)鍵值型數(shù)據(jù)庫(kù)文檔型數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)