主頁(yè) > 知識(shí)庫(kù) > 詳談MySQL和MariaDB區(qū)別與性能全面對(duì)比

詳談MySQL和MariaDB區(qū)別與性能全面對(duì)比

熱門標(biāo)簽:如何辦理400客服電話 地圖標(biāo)注專員入駐 外呼系統(tǒng)怎樣才能不封號(hào) 西藏地圖標(biāo)注改進(jìn)點(diǎn) 神行者百貨商場(chǎng)地圖標(biāo)注 地圖標(biāo)注什么軟件好用 安陽手機(jī)自動(dòng)外呼系統(tǒng)原理是什么 外呼系統(tǒng)線路經(jīng)常出問題嗎 地圖標(biāo)注百度競(jìng)價(jià)

MariaDB數(shù)據(jù)庫(kù)介紹

MariaDB數(shù)據(jù)庫(kù)管理系統(tǒng)是MySQL的一個(gè)分支,主要由開源社區(qū)在維護(hù),采用GPL授權(quán)許可。開發(fā)這個(gè)分支的原因之一是:甲骨文公司收購(gòu)了MySQL后,有將MySQL閉源的潛在風(fēng)險(xiǎn),因此社區(qū)采用分支的方式來避開這個(gè)風(fēng)險(xiǎn)。

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。

MariaDB由MySQL的創(chuàng)始人麥克爾·維德紐斯主導(dǎo)開發(fā),他早前曾以10億美元的價(jià)格,將自己創(chuàng)建的公司MySQL賣給了SUN,此后,隨著SUN被甲骨文收購(gòu),MySQL的所有權(quán)也落入Oracle的手中。

MariaDB名稱來自麥克爾·維德紐斯的女兒瑪麗亞(英語:Maria)的名字。

MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人會(huì)從MySQL5.5中了解到MariaDB的所有功能。從2012年11月12日起發(fā)布的10.0.0版開始,不再依照MySQL的版號(hào)。10.0.x版以5.5版為基礎(chǔ),加上移植自MySQL 5.6版的功能和自行開發(fā)的新功能。

在存儲(chǔ)引擎方面,10.0.9版起使用XtraDB(名稱代號(hào)為Aria)來代替MySQL的InnoDB。

MariaDB的API和協(xié)議兼容MySQL,另外又添加了一些功能,以支持本地的非阻塞操作和進(jìn)度報(bào)告。

這意味著,所有使用MySQL的連接器、程序庫(kù)和應(yīng)用程序也將可以在MariaDB下工作。

在此基礎(chǔ)上,由于擔(dān)心甲骨文MySQL的一個(gè)更加封閉的軟件項(xiàng)目,F(xiàn)edora的計(jì)劃在Fedora 19中的以MariaDB取代MySQL

MariaDB和MySQL全面對(duì)比

誰在使用MySQL和MariaDB?

MySQL和MariaDB都發(fā)布了各自的用戶名單。

使用MySQL的有Facebook、Github、YouTube、Twitter、PayPal、諾基亞、Spotify、Netflix等。

使用MariaDB的有Redhat、DBS、Suse、Ubuntu、1&1、Ingenico等。

MariaDB和MySQL功能比較

有一些令人興奮的新功能(如窗口函數(shù)、角色控制或公共表表達(dá)式(CTE))可能值得一提,但本文只是為了比較兩個(gè)數(shù)據(jù)庫(kù),所以我們?cè)谶@里只討論其中一方專門提供的功能,以便更好地幫助讀者選擇合適自己的數(shù)據(jù)庫(kù)。

讓我們來看一下只有其中一個(gè)數(shù)據(jù)庫(kù)專門提供的功能:

1. JSON數(shù)據(jù)類型

從5.7版本開始,MySQL支持由RFC 7159定義的原生JSON數(shù)據(jù)類型,可以高效地訪問JSON文檔中的數(shù)據(jù)。

MariaDB沒有提供這一增強(qiáng)功能,認(rèn)為JSON數(shù)據(jù)類型不是SQL標(biāo)準(zhǔn)的一部分。但為了支持從MySQL復(fù)制數(shù)據(jù),MariaDB為JSON定義了一個(gè)別名,實(shí)際上就是一個(gè)LONGTEXT列。MariaDB聲稱兩者之間沒有顯著的性能差異,但他們并沒有提供基準(zhǔn)測(cè)試數(shù)據(jù)來支持這個(gè)說法。

值得注意的是,MySQL和MariaDB都提供了一些JSON相關(guān)函數(shù),用于更方便地訪問、解析和檢索JSON數(shù)據(jù)。

2. 默認(rèn)身份認(rèn)證

在MySQL 8.0中,默認(rèn)的身份認(rèn)證插件是caching_sha2_password,而不是mysql_native_password。這一增強(qiáng)通過使用SHA-256算法提高了安全性。

3. MySQL Shell

MySQL Shell是MySQL的高級(jí)命令行客戶端和代碼編輯器。除了SQL之外,MySQL Shell還提供了JavaScript和Python腳本功能。不過用戶不能使用mysqlsh訪問MariaDB服務(wù)器,因?yàn)镸ariaDB不支持MySQL X協(xié)議。

4. 加密

MySQL對(duì)重做/撤消日志進(jìn)行了加密(可配),但不加密臨時(shí)表空間或二進(jìn)制日志。相反,MariaDB支持二進(jìn)制日志和臨時(shí)表加密。

5. 密鑰管理

MariaDB提供開箱即用的AWS密鑰管理插件。MySQL也提供了一些用于密鑰管理的插件,但它們僅在企業(yè)版中可用。

6. sys模式

MySQL 8.0提供了sys模式,這是一組對(duì)象,可幫助數(shù)據(jù)庫(kù)管理員和軟件工程師更好地理解通過Performance模式收集的數(shù)據(jù)。sys模式對(duì)象可用于優(yōu)化和診斷,不過MariaDB沒有提供這個(gè)增強(qiáng)功能。

7. validate_password插件

validate_password插件主要用于測(cè)試密碼并提高安全性。MySQL默認(rèn)啟用了這個(gè)插件,而MariaDB則不啟用。

8. 超級(jí)只讀

MySQL通過提供超級(jí)​​只讀(super read-only)模式來增強(qiáng)read_only功能。如果啟用了read_only,服務(wù)器只允許具有SUPER權(quán)限的用戶執(zhí)行客戶端更新。如果同時(shí)啟用了super_read_only,那么服務(wù)器將禁止具有SUPER權(quán)限的用戶執(zhí)行客戶端更新。

9. 不可見列

這個(gè)功能在MariaDB上可用,MySQL不支持該功能。這個(gè)功能允許創(chuàng)建未在SELECT *語句中出現(xiàn)的列,而在進(jìn)行插入時(shí),如果它們的名字沒有出現(xiàn)在INSERT語句中,就不需要為這些列提供值。

10. 線程池

MariaDB支持連接線程池,這對(duì)于短查詢和CPU密集型的工作負(fù)載(OLTP)來說非常有用。在MySQL的社區(qū)版本中,線程數(shù)是固定的,因而限制了這種靈活性。MySQL計(jì)劃在企業(yè)版中增加線程池功能。

MySQL和MariaDB性能

近年來,出現(xiàn)了很多關(guān)于MySQL和MariaDB引擎性能的基準(zhǔn)測(cè)試。我們不認(rèn)為“MySQL或MariaDB哪個(gè)更快”這個(gè)問題會(huì)有一個(gè)最終的答案,它在很大程度上取決于具體的使用場(chǎng)景、查詢、用戶和連接數(shù)量等因素。

不過,如果你確實(shí)想知道,下面列出了我們發(fā)現(xiàn)的一些最新的基準(zhǔn)測(cè)試結(jié)果。請(qǐng)注意,這些測(cè)試都是在一組特定的數(shù)據(jù)庫(kù)+引擎(例如MySQL+InnoDB)組合上進(jìn)行的,因此得出的結(jié)論只與特定的組合有關(guān)。

MySQL 8.0(InnoDB)和MariaDB 10.3.7(MyRocks)基準(zhǔn)測(cè)試對(duì)比:

https://minervadb.com/index.php/2018/06/01/benchmarking-innodb-and-myrocks-performance-using-sysbench/

MariaDB 10.1和MySQL 5.7在商用硬件上的性能對(duì)比:

https://mariadb.org/maria-10-1-mysql-5-7-commodity-hardware/

MySQL 8.0和MariaDB 10.3.5性能對(duì)比及UTF8的影響:

http://dimitrik.free.fr/blog/archives/2018/04/mysql-performance-80-and-utf8-impact.html

復(fù)制功能

兩個(gè)數(shù)據(jù)庫(kù)都提供了將數(shù)據(jù)從一個(gè)服務(wù)器復(fù)制到另一個(gè)服務(wù)器的功能。它們的主要區(qū)別是大多數(shù)MariaDB版本允許你從MySQL復(fù)制數(shù)據(jù),這意味著你可以輕松地將MySQL遷移到MariaDB。但反過來卻沒有那么容易,因?yàn)榇蠖鄶?shù)MySQL版本都不允許從MariaDB復(fù)制數(shù)據(jù)。

此外,值得注意的是,MySQL GTID不同于MariaDB GTID,所以將數(shù)據(jù)從MySQL復(fù)制到MariaDB后,GTID數(shù)據(jù)將相應(yīng)地做出調(diào)整。

以下是這兩個(gè)數(shù)據(jù)庫(kù)在復(fù)制配置方面的一些差別:

MySQL的默認(rèn)二進(jìn)制日志格式是基于行的,而在MariaDB中,默認(rèn)的二進(jìn)制日志格式是混合式的。

log_bin_compress——這個(gè)配置決定了是否可以壓縮二進(jìn)制日志。這個(gè)增強(qiáng)功能是MariaDB獨(dú)有的,因此MySQL不支持。

MySQL和MariaDB之間的不兼容性

MariaDB的文檔中列出了MySQL和MariaDB之間的數(shù)百個(gè)不兼容問題。因此,我們無法通過簡(jiǎn)單的方案在這兩個(gè)數(shù)據(jù)庫(kù)之間進(jìn)行遷移。

大多數(shù)數(shù)據(jù)庫(kù)管理員都希望MariaDB只是作為MySQL的一個(gè)branch,這樣就可以輕松地在兩者之間進(jìn)行遷移。但從最新發(fā)布的幾個(gè)版本來看,這種想法是不現(xiàn)實(shí)的。MariaDB實(shí)際上是MySQL的一個(gè)fork,這意味著在它們之間進(jìn)行遷移需要考慮很多東西。

MySQL和MariaDB存儲(chǔ)引擎

MariaDB比MySQL支持更多的存儲(chǔ)引擎類型。但話說回來,數(shù)據(jù)庫(kù)可以支持多少個(gè)存儲(chǔ)引擎并不重要,重要的是哪個(gè)數(shù)據(jù)庫(kù)可以支持適合你需求的存儲(chǔ)引擎。

MariaDB支持的存儲(chǔ)引擎包括:

XtraDB、InnoDB、MariaDB ColumnStore、Aria、Archive、Blackhole、Cassandra Storage Engine、Connect、CSV、FederatedX、Memory、Merge、Mroonga、MyISAM、MyRocks、QQGraph、Sequence Storage Engine、SphinxSE、Spider、TokuDB

MySQL支持的存儲(chǔ)引擎包括:

InnoDB、MyISAM、Memory、CSV、Archive、Blackhole、Merge、Federated、Example

在Linux上安裝

當(dāng)你在某些Linux發(fā)行版上安裝MySQL時(shí),最后可能安裝的是MariaDB,因?yàn)樗呛芏啵ú皇侨浚㎜inux發(fā)行版的默認(rèn)設(shè)置。

Red Hat Enterprise/CentOS/Fedora/Debian發(fā)行版默認(rèn)會(huì)安裝MariaDB,而其他發(fā)行版(如Ubuntu)默認(rèn)安裝MySQL。

云平臺(tái)上的可用性

MariaDB可作為運(yùn)行在Amazon Web Services(AWS)、微軟Azure和Rackspace Cloud上的服務(wù)。

MySQL在上面提到的三個(gè)平臺(tái)上也是可用的,同時(shí)還可以作為托管服務(wù)在谷歌云服務(wù)平臺(tái)上運(yùn)行。

因此,如果你正在使用谷歌云平臺(tái),并希望云提供商為你管理服務(wù),那么可以考慮使用MySQL,除非你希望自己安裝和管理MariaDB實(shí)例。

MySQL和MariaDB許可

MariaDB采用了GPL v2許可,而MySQL提供了兩個(gè)許可選項(xiàng)——GPL v2(用于社區(qū)版)和企業(yè)許可。

MySQL的兩個(gè)許可之間的主要區(qū)別在于可用的功能和支持服務(wù)。用戶可以使用MariaDB的所有功能,但對(duì)于MySQL來說并非如此。MySQL的社區(qū)版不包含線程池等功能,而這些功能會(huì)對(duì)數(shù)據(jù)庫(kù)和查詢性能產(chǎn)生重大影響。

發(fā)布頻率和更新

通常,MariaDB的發(fā)布頻率比MySQL更頻繁。太高的發(fā)布頻率既有利也有弊。從好的方面來說,用戶可以更及時(shí)地收到功能和錯(cuò)誤修復(fù)。從不好的方面來說,為了讓MariaDB保持最新的狀態(tài),需要更多的工作量。

技術(shù)支持

MySQL的支持團(tuán)隊(duì)(包括MySQL開發(fā)人員和支持工程師)為客戶提供全天候服務(wù)。甲骨文提供了多種支持選項(xiàng),包括擴(kuò)展支持、持續(xù)支持和高級(jí)支持,具體取決于客戶的要求。MariaDB支持團(tuán)隊(duì)的支持工程師包括了MariaDB和MySQL數(shù)據(jù)庫(kù)專家(因?yàn)楹芏喙δ茏畛跏怯蒑ySQL團(tuán)隊(duì)開發(fā)的),他們?yōu)樯a(chǎn)系統(tǒng)提供全天候的企業(yè)級(jí)支持。

正在進(jìn)行中的開發(fā)

MySQL的開發(fā)者主要是甲骨文的MySQL團(tuán)隊(duì),而MariaDB開發(fā)通過公開投票和郵件列表討論的方式進(jìn)行。此外,任何人都可以向MariaDB提交補(bǔ)丁,MariaDB開發(fā)團(tuán)隊(duì)會(huì)考慮將這些補(bǔ)丁添加到主代碼庫(kù)中。因此,從某種程度上說,MariaDB是由社區(qū)開發(fā)的,而MySQL主要由甲骨文開發(fā)。

結(jié)論

好吧,我們無法為你做出決定。我們能做的就是有針對(duì)性地問你一些問題,然后你自己做出決定:

  • 你是否分別基于這兩個(gè)數(shù)據(jù)庫(kù)對(duì)你的產(chǎn)品性能做過測(cè)試?哪一個(gè)表現(xiàn)更好,為什么?
  • 你是否打算使用其中一個(gè)數(shù)據(jù)庫(kù)專門提供的功能?
  • 你是否打算使用其中一個(gè)數(shù)據(jù)庫(kù)專門提供的數(shù)據(jù)庫(kù)引擎?
  • 能夠?qū)?shù)據(jù)庫(kù)的開發(fā)過程產(chǎn)生影響對(duì)你來說有多重要?能夠參與下一個(gè)功能變更投票對(duì)你來說有多重要?
  • 你是要為企業(yè)版本付費(fèi)還是使用社區(qū)版?社區(qū)版的功能是否能夠滿足你的需求?
  • 你的操作系統(tǒng)是否默認(rèn)支持你所選的數(shù)據(jù)庫(kù)?要部署它需不需要很多工作量?
  • 你使用的是哪個(gè)云提供商?他們是否提供托管服務(wù),其中包括你選擇的數(shù)據(jù)庫(kù)?
  • 你是否計(jì)劃將來從一種數(shù)據(jù)庫(kù)類型遷移到另一種數(shù)據(jù)庫(kù)類型?如果是這樣,你是否考慮過兼容性和復(fù)制方面的問題?

更多關(guān)于MySQL和MariaDB區(qū)別與性能全面對(duì)比請(qǐng)查看下面的相關(guān)鏈接

您可能感興趣的文章:
  • Docker同時(shí)安裝MySQL和MariaDB的方法步驟
  • Docker實(shí)現(xiàn)Mariadb分庫(kù)分表及讀寫分離功能
  • 在docker中運(yùn)行mariadb程序的方法
  • docker之創(chuàng)建MariaDB鏡像的方法
  • pycharm遠(yuǎn)程連接vagrant虛擬機(jī)中mariadb數(shù)據(jù)庫(kù)
  • 詳解CentOS7 安裝 MariaDB 10.2.4的方法
  • Linux下的 mariadb 使用 root 用戶啟動(dòng)方式(推薦)
  • MySQL/MariaDB的Root密碼重置教程
  • 淺談MySQL和MariaDB區(qū)別(mariadb和mysql的性能比較)
  • 基于docker安裝mariadb配置過程解析

標(biāo)簽:萍鄉(xiāng) 阜陽 雞西 衡水 張掖 AXB 酒泉 貴港

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳談MySQL和MariaDB區(qū)別與性能全面對(duì)比》,本文關(guān)鍵詞  詳談,MySQL,和,MariaDB,區(qū)別,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳談MySQL和MariaDB區(qū)別與性能全面對(duì)比》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于詳談MySQL和MariaDB區(qū)別與性能全面對(duì)比的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章