日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql 转型_MySQL的未来在哪?

發(fā)布時(shí)間:2025/3/12 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 转型_MySQL的未来在哪? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

阿里云 MySQL&MariaDB 數(shù)據(jù)庫(kù)產(chǎn)品結(jié)合開源社區(qū),提供了穩(wěn)定、可靠、便捷、彈性的在線數(shù)據(jù)庫(kù)服務(wù),幫助全球企業(yè)客戶進(jìn)行數(shù)字化轉(zhuǎn)型。MySQL發(fā)展經(jīng)歷了一系列變化,從Sun到Oracle,發(fā)展也經(jīng)過了幾個(gè)階段。MySQL從5.7版本開始走上了代碼重構(gòu)之路,這為MySQL未來(lái)10年的發(fā)展奠定了堅(jiān)實(shí)基礎(chǔ),而未來(lái)MySQL將和云計(jì)算碰撞出什么樣的火花?本文中,阿里云研究員呂漫漪將為大家分享MySQL的前世今生。

MySQL的過去

對(duì)于MySQL而言,其最大的發(fā)展變化就是被Sun收購(gòu),但是Sun原本就有數(shù)據(jù)庫(kù)團(tuán)隊(duì),MySQL被收購(gòu)之后兩個(gè)團(tuán)隊(duì)也合并了起來(lái)。MySQL的團(tuán)隊(duì)懂得社區(qū)并且有激情,而Sun的團(tuán)隊(duì)懂得怎樣軟件工程化,懂得保證質(zhì)量和產(chǎn)品迭代,因此團(tuán)隊(duì)合并之后對(duì)于MySQL的改變很大。在這之后Sun被Oracle收購(gòu),這又是另外一個(gè)轉(zhuǎn)折點(diǎn),Oracle不僅給了MySQL團(tuán)隊(duì)很大自由,也投入了很多人力和物力。這也保證了2013、2015以及2018年,每間隔2年多的時(shí)間就能推出一個(gè)較為成熟的新版本,而在2018年之后其迭代周期就會(huì)迅速變短,因?yàn)槌锫?lián)網(wǎng)方向發(fā)展,大概每三個(gè)月就會(huì)迭代一次。

近十年中,Oracle做了很多很好的事情,其中有一點(diǎn)事情雖然很少談到,但是對(duì)于之后的發(fā)展卻極為重要,那就是——代碼重構(gòu)。大家都希望完善功能,提高性能,但是很少有人做了代碼重構(gòu)。所謂代碼重構(gòu)就是在不改變功能的前提下,改善代碼結(jié)構(gòu),提高可讀性和可擴(kuò)展性。這件事情雖然說(shuō)起來(lái)簡(jiǎn)單,但是做起來(lái)難,特別是在進(jìn)行決策的時(shí)候。MySQL5.6版本的時(shí)候決定進(jìn)行代碼重構(gòu),這是因?yàn)?#xff0c;Oracle增加了很多人力進(jìn)入MySQL項(xiàng)目,但是當(dāng)時(shí)的系統(tǒng)卻存在很多Bug,這使得代碼維護(hù)變得極為困難,使很多人力用于維護(hù)舊代碼而不是增加新功能。此外,還使新功能的開發(fā)周期變得特別長(zhǎng),并且容易發(fā)生錯(cuò)誤。當(dāng)然,因?yàn)橛泻芏噱e(cuò)誤,并且代碼沒有注釋和文檔,使新人接手項(xiàng)目變得困難。

MySQL的現(xiàn)狀

因此為了保證長(zhǎng)期的市場(chǎng)領(lǐng)先地位,MySQL必須要進(jìn)行代碼重構(gòu)。在最開始,主要是將解析、優(yōu)化、查詢等步驟進(jìn)行拆分,方便找到存在問題的模塊。此外, 還實(shí)現(xiàn)了一些工具,來(lái)幫助檢測(cè)Bug。MySQL5.7中的優(yōu)化器部分,30%的代碼是重寫的,而在8.0中解析器的50%都是重寫的,可見投入很大。MySQL將編程語(yǔ)言都統(tǒng)一到C++,編譯器都使用最新版本,代碼規(guī)格采用谷歌的,統(tǒng)一了300人的開發(fā)團(tuán)隊(duì)的代碼標(biāo)準(zhǔn)。代碼重構(gòu)這件事情可能是對(duì)于未來(lái)10年的MySQL發(fā)展所做的最重要的一件事情。這是因?yàn)橛辛烁哔|(zhì)量的代碼,才能夠快速推出新的功能,降低維護(hù)成本,使得新人更快上手項(xiàng)目。

解析器在重構(gòu)之前的結(jié)構(gòu)就像是一盤意大利面,非常混亂,重構(gòu)之后就變得極為清晰。當(dāng)重構(gòu)完解析器之后發(fā)現(xiàn),以前很多解析器的Bug都消失了,此外,增加復(fù)雜語(yǔ)法的效率也得到了極大的提升,節(jié)約了大量時(shí)間。此外,還做了多核性能提高,這也是硬件的趨勢(shì),雖然每個(gè)內(nèi)核不會(huì)更快,但是數(shù)目卻會(huì)增加。在重構(gòu)之后,讀性能提高了三倍,寫的性能也有很可觀的的提高。

MySQL另外一個(gè)大的改變就是測(cè)試方面,如今的用戶更多的是企業(yè)級(jí)用戶,他們更多關(guān)注于更高的穩(wěn)定性。對(duì)于數(shù)據(jù)庫(kù)而言,最重要的永遠(yuǎn)都是穩(wěn)定性,功能和性能是其次的。對(duì)于測(cè)試方法而言,要求對(duì)于新的功能,測(cè)試代碼覆蓋率達(dá)到95%,所有的開發(fā)人員在提交代碼的時(shí)候都要進(jìn)行單元測(cè)試。在實(shí)現(xiàn)新功能的時(shí)候,需要開發(fā)和測(cè)試同時(shí)進(jìn)行,整體測(cè)試之后才能將代碼推入主干,性能測(cè)試,每天都會(huì)測(cè)試,此外有重大更新推入主干時(shí)需要進(jìn)行完整的性能測(cè)試,保證性能不會(huì)退化。所有測(cè)試都自動(dòng)化,不需要人為測(cè)試。

功能上的最大亮點(diǎn)就是在MySQL5.7版本中推出了JSON數(shù)據(jù)類型。雖然MySQL一直都是關(guān)系型數(shù)據(jù)庫(kù),但是發(fā)現(xiàn)自己的用戶不僅僅需要關(guān)系型數(shù)據(jù)庫(kù),也需要支持非結(jié)構(gòu)化數(shù)據(jù)。因此MySQL需要和客戶自己成長(zhǎng),因此在5.7版本中加入了JSON數(shù)據(jù)類型,也推出了很多適于JSON的函數(shù),因此用戶可以選擇使用類似于MongoDB的Document的API,用戶可以將MySQL當(dāng)做NoSQL來(lái)使用,而不用關(guān)心底層的原理,而且還實(shí)現(xiàn)了NoSQL所無(wú)法比擬的功能。

MySQL5.7功能中的另外一個(gè)亮點(diǎn)是“Group Replication”。這還是因?yàn)榱顺嘶ヂ?lián)網(wǎng)客戶已經(jīng)普遍地應(yīng)用MySQL了,還有很多新增客戶是企業(yè)級(jí)客戶,他們要求高可靠性。組復(fù)制就是提高可靠性的一個(gè)功能,支持自動(dòng)切換和多寫,而多寫也提升了高可用性,而且支持多寫檢測(cè)。這個(gè)功能當(dāng)前只支持InnoDB,但很多新功能也支持InnoDB。

MySQL 8.0版本的新功能亮點(diǎn)就是自檢表,對(duì)于客戶而言做好的一點(diǎn)就是就是它支持原子操作的DDL,特別是在云上原子性的DDL發(fā)揮了決定的作用,因?yàn)楹芏嗖僮鞫际亲詣?dòng)操作,不可能讓人手動(dòng)修改DDL回滾時(shí)發(fā)生的錯(cuò)誤。這一點(diǎn)對(duì)于云數(shù)據(jù)庫(kù)而言非常重要。

此外,MySQL 8.0版本還提升了Information Scheme的性能。而無(wú)論是系統(tǒng)表還是普通表,都存放在InnoDB里面,因此其處理方式是一樣的。對(duì)于開發(fā)者而言,有了數(shù)據(jù)自檢,增加新的功能就會(huì)非常容易。

遞歸公用表表達(dá)式以及窗口函數(shù)都是非常復(fù)雜的SQL語(yǔ)句,在8.0中加入這兩個(gè)語(yǔ)句縮短了MySQL和Oracle的差距,這會(huì)大幅度地降低數(shù)據(jù)庫(kù)開發(fā)人員的開發(fā)時(shí)間。CTE主要用于對(duì)于存在層次等級(jí)的表中做遞歸的查詢,這一功能在報(bào)表中非常常用。窗口函數(shù)則是用在分析型工作中的,比如分析每年、每季度的營(yíng)收等。這些就是在MySQL8.0中新增的針對(duì)于數(shù)據(jù)庫(kù)開發(fā)者的功能,幫助他們提升開發(fā)效率。

MySQL的未來(lái)

MySQL的未來(lái)其實(shí)只有一個(gè)字,那就是“云”。有預(yù)測(cè)稱“在2020年,83% 的企業(yè)負(fù)載會(huì)轉(zhuǎn)移到云上”,也就是說(shuō)大部分線下場(chǎng)景會(huì)轉(zhuǎn)移到云上,這對(duì)于MySQL而言既是一個(gè)機(jī)會(huì)也是一個(gè)挑戰(zhàn)。MySQL需要在進(jìn)行內(nèi)核改動(dòng)和優(yōu)化,使其更適合在云上發(fā)展。

云上數(shù)據(jù)庫(kù)架構(gòu)存在著明顯的轉(zhuǎn)變,最為明顯的就是計(jì)算層和存儲(chǔ)層的分離。計(jì)算層不共享,但是存儲(chǔ)層會(huì)變成共享存儲(chǔ)。共享存儲(chǔ)會(huì)達(dá)到云規(guī)模,也就是極大規(guī)模,能夠支持所有用戶,這樣能夠極大地節(jié)約資源。而這樣的想法已經(jīng)被PolarDB用到了。而企業(yè)級(jí)客戶需要高可靠性,所以云上數(shù)據(jù)庫(kù)需要演變成為可以跨機(jī)房的高可靠性,而且需要保證切換的過程中不丟失任何數(shù)據(jù)。在云上,很切換過程多操作需要自動(dòng)化,需要保證AC之間的切換不丟失任何數(shù)據(jù)。云上數(shù)據(jù)庫(kù)與傳統(tǒng)數(shù)據(jù)庫(kù)不同的是需要考慮到云上其他的服務(wù),如何將數(shù)據(jù)庫(kù)和備份、恢復(fù)、審計(jì)、安全以及監(jiān)控等其他服務(wù)進(jìn)行集成。

資源管理也是值得MySQL提升的部分,有些事務(wù)對(duì)于響應(yīng)時(shí)間要求很高,這樣可以優(yōu)先處理響應(yīng)時(shí)間較高的任務(wù),而降低其他事務(wù)的優(yōu)先級(jí)。此外,當(dāng)內(nèi)存不夠的時(shí)候應(yīng)該如何處理,不能使得服務(wù)宕機(jī)??梢赃M(jìn)行回滾或者降低新的請(qǐng)求,來(lái)保證數(shù)據(jù)庫(kù)的穩(wěn)定狀態(tài)。此外,還有想做的一件事情就是智能生成執(zhí)行計(jì)劃。因?yàn)橐粋€(gè)SQL進(jìn)來(lái)之后,先解析做優(yōu)化,產(chǎn)生執(zhí)行計(jì)劃,這里需要改進(jìn)的是在執(zhí)行計(jì)劃生成的時(shí)候需要考慮更多的事情,比如查詢的響應(yīng)要求以及內(nèi)存限制。對(duì)于查詢時(shí)間和空間的平衡需要客戶自己決定。而現(xiàn)在的執(zhí)行計(jì)劃是由優(yōu)化器自己決定的,在未來(lái)希望能夠智能地生成執(zhí)行計(jì)劃。

回到企業(yè)級(jí)工作負(fù)載,其實(shí)MySQL用在互聯(lián)網(wǎng)業(yè)務(wù)中是非常多的,但是眾所周知互聯(lián)網(wǎng)業(yè)務(wù)的查詢往往比較簡(jiǎn)單,而企業(yè)級(jí)用戶的查詢相當(dāng)復(fù)雜。MySQL目前對(duì)于簡(jiǎn)單數(shù)據(jù)庫(kù)查詢的性能非常好,在這一方面做了很多優(yōu)化,而在復(fù)雜查詢方面還可以做極多的優(yōu)化,比如開啟多個(gè)線程并行執(zhí)行。同時(shí)可以在InnoDB層做更多的并行執(zhí)行,比如Scan、條件過濾等,因此在復(fù)雜查詢方面有無(wú)限的提升空間。

MySQL目前只用于OLTP,此外目前還以一個(gè)發(fā)展很快的趨勢(shì)就是在線分析。未來(lái),MySQL可能會(huì)同時(shí)支持事務(wù)性處理也會(huì)同時(shí)支持在線分析。在線分析和數(shù)據(jù)倉(cāng)庫(kù)不同,因?yàn)閿?shù)據(jù)已經(jīng)在手里了,可以用同一份數(shù)據(jù)做更多的分析。對(duì)于用戶而言,所看到的就是一個(gè)數(shù)據(jù)庫(kù),但是所能夠包含的功能確是難以想象的。

云服務(wù)器99元拼團(tuán)購(gòu)!拉新還可贏現(xiàn)金紅包!300萬(wàn)等你瓜分!

馬上一鍵開團(tuán)贏紅包: http://click.aliyun.com/m/1000019899/

本文作者: 桐碧2018

本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的mysql 转型_MySQL的未来在哪?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。