• <strike id="6sogq"><s id="6sogq"></s></strike>
  • <strike id="6sogq"></strike>

    千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

    400-811-9990
    手機(jī)站
    千鋒教育

    千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

    千鋒教育

    掃一掃進(jìn)入千鋒手機(jī)站

    領(lǐng)取全套視頻
    千鋒教育

    關(guān)注千鋒學(xué)習(xí)站小程序
    隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽(yáng)
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當(dāng)前位置:成都千鋒IT培訓(xùn)  >  技術(shù)干貨  >  OceanBase、TiDB這類NewSQL的定位是什么?

    OceanBase、TiDB這類NewSQL的定位是什么?

    來(lái)源:千鋒教育
    發(fā)布人:xqq
    時(shí)間: 2023-10-17 17:22:25

    一、OceanBase、TiDB這類NewSQL的定位

    oceanbase tidb spanner是share nothing的架構(gòu),單個(gè)分區(qū)有paxos保證可用性的前提下,還有近乎線性的擴(kuò)展能力,而代價(jià)是復(fù)雜查詢和DML,不一定都能生成下推執(zhí)行的plan,要么無(wú)法執(zhí)行要么執(zhí)行很慢。再有就是分布式事務(wù)一致性的代價(jià),分布式快照讀代價(jià)較大。

    mysql GR更像share data的rac和pureScale,容量和計(jì)算的擴(kuò)展能力有限,它們的出現(xiàn)更多的意義是對(duì)傳統(tǒng)的單機(jī)mysql oracle db2在可用性上的補(bǔ)充。使用起來(lái)與傳統(tǒng)單機(jī)實(shí)例沒(méi)有差別。

    首先要明確的是,沒(méi)有完美的系統(tǒng),任何一個(gè)系統(tǒng)的出現(xiàn)都是為了解決當(dāng)時(shí)最主要的問(wèn)題,但是會(huì)產(chǎn)生一些其他的小問(wèn)題,跟藥一樣,能治病,但是一般都會(huì)有副作用。

    那么完美的數(shù)據(jù)庫(kù)系統(tǒng)什么樣呢,我現(xiàn)在能想到以下幾點(diǎn):

    1.易用與靈活性:數(shù)據(jù)庫(kù)可以理解自然語(yǔ)言,我跟它說(shuō)我要存儲(chǔ)什么樣的數(shù)據(jù),就存進(jìn)去了,要查詢什么樣的數(shù)據(jù),就給我取出來(lái)了,不需要我告訴它怎么存,怎么取

    2.擴(kuò)展性:可以存儲(chǔ)無(wú)限多的數(shù)據(jù),不需要擔(dān)心容量的問(wèn)題

    3.高性能:性能非常強(qiáng)大,不管想存或取什么數(shù)據(jù),瞬間就完成了

    4.高可用:數(shù)據(jù)存儲(chǔ)之后,永遠(yuǎn)也不會(huì)丟,系統(tǒng)永遠(yuǎn)也不會(huì)掛掉,1年365天,1天24小時(shí)隨叫隨到

    5.并發(fā)與隔離性:數(shù)據(jù)庫(kù)不僅可以滿足我一個(gè)人,也可以滿足所有人的同時(shí)讀寫,并且我們之間互不干擾

    關(guān)系數(shù)據(jù)庫(kù)之前的存儲(chǔ)系統(tǒng)基本上一個(gè)條件也不滿足

    傳統(tǒng)單機(jī)關(guān)系數(shù)據(jù)庫(kù)一定程度上解決了問(wèn)題1、3、5,用戶不需要知道數(shù)據(jù)是怎么存儲(chǔ)的,行存儲(chǔ)還是列存儲(chǔ)或者其他的結(jié)構(gòu)信息,查詢的時(shí)候用SQL就可以了,不需要根據(jù)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)編寫特定的程序,大大簡(jiǎn)化了應(yīng)用開(kāi)發(fā),性能也還可以。之所以說(shuō)是一定程度上,是因?yàn)椴](méi)有完美的解決。SQL雖然很簡(jiǎn)單,但要比自然語(yǔ)言復(fù)雜得多,更改表的schema也不是特別方便;性能的話對(duì)于復(fù)雜查詢,優(yōu)化器無(wú)能為力,可能會(huì)給出性能非常差的查詢計(jì)劃;并發(fā)與隔離性可以做到,但是要犧牲性能

    Mysql Group Replication幫助傳統(tǒng)單機(jī)關(guān)系數(shù)據(jù)庫(kù)解決了問(wèn)題4

    如果數(shù)據(jù)量不大,這樣用著也不錯(cuò)了。但是互聯(lián)網(wǎng)導(dǎo)致了數(shù)據(jù)量的爆炸式增長(zhǎng),單機(jī)存儲(chǔ)不下這么多數(shù)據(jù)了。所以才會(huì)出現(xiàn)了Bigtable等NoSQL分布式數(shù)據(jù)庫(kù),解決當(dāng)時(shí)最主要的數(shù)據(jù)量暴增問(wèn)題。這些系統(tǒng)一定程度上解決了問(wèn)題2、3、4。它想不想解決其他問(wèn)題呢?肯定想,但是要解決這些問(wèn)題,系統(tǒng)會(huì)變得更加復(fù)雜,需要更長(zhǎng)的時(shí)間,但是系統(tǒng)需要快速上線啊,那么就先把最主要的問(wèn)題解決了就好。隔離性就由業(yè)務(wù)部門自己去解決吧,這也導(dǎo)致了后來(lái)業(yè)務(wù)部門很多的抱怨。所以我覺(jué)得NoSQL在開(kāi)發(fā)的時(shí)候是有很多妥協(xié)的,屬于救火的產(chǎn)品,不可能成為未來(lái)的方向。

    目前看來(lái)OceanBase、TiDB、Spanner/F1這些系統(tǒng)是能夠解決上述問(wèn)題非常多的系統(tǒng)。

    1.支持SQL

    2.數(shù)據(jù)被拆分成一個(gè)個(gè)range,分散在不同的服務(wù)器中,通過(guò)增加服務(wù)器就可以一定程度上的線性擴(kuò)容

    4.多副本,并且通過(guò)paxos或raft保證多副本之間的一致性

    5.通過(guò)2PC,MVCC支持不同隔離級(jí)別的事物

    但是相比高端服務(wù)器上的單機(jī)數(shù)據(jù)庫(kù),性能會(huì)有些問(wèn)題

    查詢的延遲(latency)會(huì)比較高,網(wǎng)絡(luò)是一個(gè)問(wèn)題,比如分布式j(luò)oin就要用到網(wǎng)絡(luò),有人做過(guò)實(shí)驗(yàn),在不改變現(xiàn)有查詢引擎的情況下,單條查詢隨著服務(wù)器數(shù)量增多,性能不增反降,把網(wǎng)絡(luò)換成InfiniBand效果也不好,后來(lái)重新設(shè)計(jì)了查詢引擎,性能做到了遞增。可以參考High-Speed Query Processing over High-Speed Networks(

    http://www.vldb.org/pvldb/vol9/p228-roediger.pdf

    所以需要改變很多傳統(tǒng)的做法,針對(duì)新硬件進(jìn)行新的設(shè)計(jì)、優(yōu)化,是可以大幅度提高性能的。

    未來(lái)不敢說(shuō),單機(jī)數(shù)據(jù)庫(kù)在很多場(chǎng)景下還是會(huì)有廣泛應(yīng)用的,NewSQL最起碼接下來(lái)的幾年里都還有很大的發(fā)展?jié)摿Γ鳱oSQL,分布式中間件等方案基本上就是明日黃花了。

    延伸閱讀:

    二、數(shù)據(jù)庫(kù)的查詢功能實(shí)現(xiàn)原理

    數(shù)據(jù)庫(kù)查詢是數(shù)據(jù)庫(kù)的最主要功能之一。我們都希望查詢數(shù)據(jù)的速度能盡可能的快,因此數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)者會(huì)從查詢算法的角度進(jìn)行優(yōu)化。最基本的查詢算法當(dāng)然是順序查找(linear search),這種復(fù)雜度為O(n)的算法在數(shù)據(jù)量很大時(shí)顯然是糟糕的,好在計(jì)算機(jī)科學(xué)的發(fā)展提供了很多更優(yōu)異的查找算法,例如二分查找(binary search)、二叉樹(shù)查找(binary tree search)等。如果稍微分析一下會(huì)發(fā)現(xiàn),每種查找算法都只能應(yīng)用于特定的數(shù)據(jù)結(jié)構(gòu)之上,例如二分查找要求被檢索數(shù)據(jù)有序,而二叉樹(shù)查找只能應(yīng)用于二叉查找樹(shù)上,但是數(shù)據(jù)本身的組織結(jié)構(gòu)不可能完全滿足各種數(shù)據(jù)結(jié)構(gòu)(例如,理論上不可能同時(shí)將兩列都按順序進(jìn)行組織),所以,在數(shù)據(jù)之外,數(shù)據(jù)庫(kù)系統(tǒng)還維護(hù)著滿足特定查找算法的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)以某種方式引用(指向)數(shù)據(jù),這樣就可以在這些數(shù)據(jù)結(jié)構(gòu)上實(shí)現(xiàn)高級(jí)查找算法。這種數(shù)據(jù)結(jié)構(gòu),就是索引。

    聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

    猜你喜歡LIKE

    sql server2012r2所在服務(wù)器做端口限制,需要開(kāi)放什么端口才能繼續(xù)訪問(wèn)數(shù)據(jù)庫(kù)?

    2023-10-17

    Oracle有什么優(yōu)勢(shì)和劣勢(shì)?

    2023-10-17

    CSS 隱藏頁(yè)面元素有哪些方法?

    2023-10-17

    最新文章NEW

    數(shù)據(jù)庫(kù)聚集索引非聚集索引實(shí)現(xiàn)上有哪些區(qū)別?

    2023-10-17

    開(kāi)發(fā)web應(yīng)用,好的開(kāi)發(fā)流程是怎么樣的?

    2023-10-17

    為什么說(shuō)Gradle是Android進(jìn)階繞不去的坎?

    2023-10-17

    相關(guān)推薦HOT

    更多>>

    快速通道 更多>>

    最新開(kāi)班信息 更多>>

    網(wǎng)友熱搜 更多>>