国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Mysql - MariaDB 新版本實(shí)力逆襲不僅僅是 MySQL 替代品

MariaDB 新版本實(shí)力逆襲不僅僅是 MySQL 替代品

2020-07-06 19:44MYSQL教程網(wǎng) Mysql

MariaDB是MySQL源代碼的一個(gè)分支,主要由開源社區(qū)在維護(hù),采用GPL授權(quán)許可。MariaDB 10.0和MySQL 5.6的不同之處有那些,MariaDB和Percona有什么不同呢?下面通過本文詳細(xì)了解下吧

MySQL分支——MariaDB

MariaDB是MySQL源代碼的一個(gè)分支,主要由開源社區(qū)在維護(hù),采用GPL授權(quán)許可。開發(fā)這個(gè)分支的原因之一是:甲骨文公司收購了MySQL后,有將MySQL閉源的潛在風(fēng)險(xiǎn),因此社區(qū)采用分支的方式來避開這個(gè)風(fēng)險(xiǎn)。MariaDB是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲(chǔ)引擎方面,使用XtraDB來代替MySQL的InnoDB,XtraDB完全兼容InnoDB,創(chuàng)建一個(gè)InnoDB表內(nèi)部默認(rèn)會(huì)轉(zhuǎn)換成XtraDB。

Percona XtraDB 是 InnoDB 存儲(chǔ)引擎的增強(qiáng)版,用來更好地發(fā)揮最新的計(jì)算機(jī)硬件系統(tǒng)性能,同時(shí)還包含一些在高性能環(huán)境下的新特性。XtraDB 存儲(chǔ)引擎是完全的向下兼容,在 MariaDB 中,XtraDB 存儲(chǔ)引擎被標(biāo)識為"ENGINE=InnoDB",這與 InnoDB 是一樣的,所以可以直接用XtraDB 替換掉 InnoDB,而不會(huì)產(chǎn)生任何問題。XtraDB 在 InnoDB 的基礎(chǔ)上構(gòu)建,使 XtraDB 具有更多的特性,更多的參數(shù)指標(biāo)和更多的擴(kuò)展。從實(shí)踐的角度來看,XtraDB 在CPU多核的條件下更有效的使用內(nèi)存,并且性能更高。從 MariaDB 5.1 開始就默認(rèn)使用 XtraDB 存儲(chǔ)引擎。

MariaDB由MySQL的創(chuàng)始人Michael (Monty) Widenius主導(dǎo)開發(fā),他早前曾以10億美元的價(jià)格,將自己創(chuàng)建的公司MySQL AB賣給了SUN,此后,隨著SUN被甲骨文收購,MySQL的所有權(quán)也落入Oracle的手中。MariaDB名稱來自Michael (Monty) Widenius的女兒Maria的名字。

一、MariaDB 10.0和MySQL 5.6的不同之處

MySQL 5.6 的代碼庫的文件結(jié)構(gòu)已經(jīng)被改動(dòng)了。比如單個(gè)代碼文件已經(jīng)被分成多個(gè),又或者是某些代碼已經(jīng)被重新歸類到了不同的文件內(nèi)。所以要把MariaDB 去配合現(xiàn)在這個(gè)文件結(jié)構(gòu)一定是一個(gè)非常消耗時(shí)間的過程。

MairaDB 5.5 已經(jīng)有大量的代碼不同于MySQL 5.5 的版本,而且也有很多的新的特征被整合到MariaDB 5.5 中,而這些特征直到 5.6 版本才出現(xiàn)在MySQL中。所以在比較同樣功能的MySQL和MariaDB的版本,同時(shí)在完成設(shè)計(jì)和QA方面的審核后,一個(gè)很明顯的結(jié)論是MariaDB會(huì)是一個(gè)更好的產(chǎn)品。在大多數(shù)情況下,在選擇 MariaDB的時(shí)候,人們會(huì)更多地考慮到功能方面的偏好。

MariaDB不僅僅是MySQL的一個(gè)替代品。它的主要目的是創(chuàng)新和提高M(jìn)ySQL的技術(shù),MySQL5.6不是一個(gè)合適的創(chuàng)新基礎(chǔ)平臺(tái),所以MariaDB團(tuán)隊(duì)就做了下面的事情:

引入了一些新功能(像Multi-source Replication多源復(fù)制,基于表的并行復(fù)制,Galera Cluster集群,Spider水平分片存儲(chǔ)引擎,TokuDB存儲(chǔ)引擎等),所以需要搞個(gè)新版本。

下個(gè)版本稱作“MariaDB5.6”是不準(zhǔn)確的,因?yàn)樗皇腔贛ySQL5.6的,取而代之,MariaDB團(tuán)隊(duì)決定版本號調(diào)為10.0。

MariaDB和Percona有什么不同呢?

Percona是僅僅針對InnoDB引擎上做了性能上的改善(稱為XtraDB),而MariaDB在集成了XtraDB存儲(chǔ)引擎之外,還集成了更多的存儲(chǔ)引擎,包括Aria、SphinxSE、TokuDB、Cassandra、CONNECT、SEQUENCE及Spider存儲(chǔ)引擎等,并且在服務(wù)器層上做了大量改進(jìn),增加了多源復(fù)制和基于表的并行復(fù)制等。

二、MariaDB和MySQL的兼容性

MariaDB跟MySQL在絕大多數(shù)方面是兼容的,對于前端應(yīng)用(比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby、MySQL C connector)來說,幾乎感覺不到任何不同。目前MariaDB是發(fā)展最快的MySQL分支版本,新版本的發(fā)布速度已經(jīng)超過了Oracle官方的MySQL版本。

注:MariaDB10.0/10.1的GTID復(fù)制跟MySQL5.6不兼容。

在Oracle控制下的MySQL開發(fā),有兩個(gè)主要問題:

MySQL核心開發(fā)團(tuán)隊(duì)是封閉的,完全沒有Oracle之外的成員參加。很多高手即使有心做貢獻(xiàn),也沒辦法做到。

MySQL新版本的發(fā)布速度,在Oracle收購Sun之后大為減緩。

Michael (Monty) Widenius有一個(gè)PPT,用數(shù)據(jù)比較了收購之前和之后新版本的發(fā)布速度,并表示有很多bugfix和新的feature,都沒有及時(shí)加入到發(fā)布版本之中。

以上這兩個(gè)問題,導(dǎo)致了各個(gè)大公司,都開發(fā)了自己定制的MySQL版本,包括Yahoo!、Facebook、Google、阿里巴巴和淘寶網(wǎng)等。MySQL是開源社區(qū)的資產(chǎn),任何個(gè)人/組織都無權(quán)據(jù)為己有。為了更快速地發(fā)展MySQL,另外開分支是必須的。

三、MariaDB 10.0新增的功能

更多的存儲(chǔ)引擎

除了包含標(biāo)準(zhǔn)的MyISAM、BLACKHOLE、CSV、MEMORY、ARCHIVE和MERGE等存儲(chǔ)引擎外,MariaDB的源代碼包和二進(jìn)制包還包含以下額外的存儲(chǔ)引擎:

Aria(增強(qiáng)版的MyISAM)
XtraDB(增強(qiáng)版的InnoDB)
FederatedX
OQGRAPH
SphinxSE[1]
IBMDB2I
TokuDB[2]
Cassandra
CONNECT
SEQUENCE
Spider[3]
PBXT

速度提升

在MariaDB5.3版本里,就已經(jīng)對子查詢進(jìn)行了優(yōu)化,并采用semi join半連接方式將SQL改寫為了表關(guān)聯(lián)join,從而提高了查詢速度。

在MariaDB5.3版本里,引入了Group commit for the binary log組提交技術(shù),簡單的說,多個(gè)并發(fā)提交的事務(wù)加入一個(gè)隊(duì)列里,對這個(gè)隊(duì)列里的事務(wù),利用一次I/O合并提交,從而解決了寫日志頻繁刷磁盤的問題。

在MariaDB10.0版本里,引入了基于表的多線程并行復(fù)制技術(shù),如果主庫上1秒內(nèi)有10個(gè)事務(wù),那么合并一個(gè)I/O提交一次,并在binlog里增加一個(gè)cid = XX 標(biāo)記,當(dāng)cid的值是一樣時(shí),Slave就可以進(jìn)行并行復(fù)制,通過設(shè)置多個(gè)sql_thread線程實(shí)現(xiàn)。在MySQL5.5版本里是單進(jìn)程串行復(fù)制,通過sql_thread線程來恢復(fù)主庫推送過來的binlog,這樣會(huì)產(chǎn)生一個(gè)問題,主庫上大量的寫操作,從庫就有可能會(huì)出現(xiàn)延遲。在MySQL5.6是基于庫級別的并行復(fù)制,MySQL5.7是基于表級別的并行復(fù)制。

在MariaDB5.5版本里,引入了線程池thread pool技術(shù),線程池的連接復(fù)用,減少了建立連接的開銷,減少了CPU上下文切換,非常適合高并發(fā)php短連接應(yīng)用場景(例如使用開源電商平臺(tái)ECSHOP秒殺業(yè)務(wù)場景)。

在處理內(nèi)部的臨時(shí)表,MariaDB用Aria引擎代替了MyISAM引擎,這將使某些GROUP BY和DISTINCT請求速度更快,因?yàn)锳ria有比MyISAM更好的緩存機(jī)制。

擴(kuò)展和新功能

時(shí)間精確到微秒級別

提供了虛擬列(函數(shù)索引)

在MariaDB5.2版本里,就已經(jīng)提供了虛擬列(函數(shù)索引),但直到MySQL5.7版本才支持。

kill命令擴(kuò)展

在MariaDB5.3版本里,又對kill命令進(jìn)行了擴(kuò)展,可以指定某個(gè)user用戶,殺死所有查詢

修改表結(jié)構(gòu)可顯示執(zhí)行進(jìn)度

提供了動(dòng)態(tài)列(可以存儲(chǔ)JSON格式)

在MariaDB5.3版本里,就已經(jīng)提供了動(dòng)態(tài)列(可以存儲(chǔ)JSON格式),但直到MySQL5.7版本才支持。

提供了多源復(fù)制,但直到MySQL5.7版本才支持。

支持GTID同步復(fù)制。

創(chuàng)建了用戶支持創(chuàng)建角色role權(quán)限。

通過show processlist可以查看內(nèi)存占用。

執(zhí)行create or replace table 等于先執(zhí)行drop操作,再執(zhí)行create操作。

執(zhí)行delete from table returning命令可刪除前返回刪除的記錄。

慢查詢?nèi)罩緎low log里增加了explain執(zhí)行計(jì)劃。

四、總結(jié)

MariaDB是甲骨文MySQL的加強(qiáng)版本,因此已有的系統(tǒng)不需要任何修改就可以運(yùn)行,就像使用Percona Server一樣。

MariaDB社區(qū)版和企業(yè)版的源代碼都是開源的,并且所有功能都是免費(fèi)開放,不用擔(dān)心功能上有閹割,但甲骨文MySQL企業(yè)版延伸套件采取封閉源代碼且需要付費(fèi)。此外,MariaDB相比MySQL擁有更多的功能、更快、更穩(wěn)定、BUG修復(fù)更快。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产午夜精品一区二区三区视频 | 日韩国产一区二区三区 | 亚洲精品国产第一综合99久久 | 国产一级黄色大片 | 欧美成人一区二免费视频软件 | 在线观看91 | 久久久区 | 精品福利一区二区三区 | 伊人一区 | av午夜电影| 黄色网日本 | 国产一区二区三区在线观看视频 | 国产男女做爰免费网站 | 中文字幕乱码亚洲精品一区 | 色婷婷网| 日本妇乱大交xxxxx | 欧美国产一区二区三区 | 国产精品久久久久久久久久久久久 | 午夜私人影院在线观看 | 欧美自拍网 | 在线观看黄色 | 欧美在线 | 亚洲 | 一本黄色片 | 亚洲狠狠爱一区二区三区 | 97久久久| 国产欧美久久久久久 | 久久国产精品一区 | 国产精品成人一区二区 | 国产一区二区三区在线观看免费 | 国产综合亚洲精品一区二 | 久久一二区 | 黄色一级毛片网站 | 久久精品无码一区二区三区 | 欧美xxxx黑人又粗又长 | 国产精品久久久久久久 | 男人的天堂久久精品 | 国产中文视频 | 欧美一级二级视频 | 国产人成在线观看 | 国产高清一区二区 | 免费裸体视频网站 |