詳談MySQL和MariaDB區別與性能全面對比_mariadb

來源:腳本之家  責任編輯:小易  

MariaDB數據庫管理系統?MySQL?支?主要由?源社區?維護?采用GPL授權許?發?支?原?甲骨文公司收購?MySQL?MySQL閉源?潛?風險?社區采用?支?式?避?風險?MariaDB?目?完全兼容MySQL?包括API?命令行?使?能輕松?MySQL?代替品?存儲引擎?面?使用XtraDB(英語:XtraDB)?代替MySQL?InnoDB?MariaDB由MySQL?創始?Michael Widenius(英語:Michael Widenius)主導?發?早前曾?10億美元?價格?自?創建?公司MySQL AB賣給?SUN?隨著SUN?甲骨文收購?MySQL?所?權?落入Oracle?手?MariaDB名稱?自Michael Widenius?Maria?名字?MySQL[1]?關系型數據庫管理系統?由瑞典MySQL AB公司?發?目前屬于Oracle公司?MySQL?流行?關系型數據庫管理系統?WEB應用?面MySQL?RDBMS(Relational Database Management System:關系數據庫管理系統)應用軟件?MySQL?種關聯數據庫管理系統?關聯數據庫?數據保存?同?表?所?數據放?倉庫內?增加?速度并提高?靈?性?MySQL所使用?SQL語言?用于訪問數據庫?用標準化語言?MySQL軟件采用?雙授權政策(本詞條?授權政策?社區版?商業版?由于其體積?速度快、總體擁?本低?尤其?放源碼?特點?般?型網站?發都選擇MySQL作?網站數據庫?由于其社區版?性能卓越?搭配PHP???Apache???組?良?發環境?www.13333515.buzz防采集請勿采集本網。

MariaDB數據庫介紹

MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,采用GPL授權許可。開發這個分支的原因之一是:甲骨文公司收購了MySQL后,有將MySQL閉源的潛在風險,因此社區采用分支的方式來避開這個風險。

MariaDB官方的解釋是:完全兼容MySQL。Oracle收購的MySQL,Oracle DB和MySQL就像倆兒子,一個親生的,一個領養的。基本差不多,不過mariadb可能會有新引擎

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

ariaDB為可替代MySQL的增強版本,但在已安裝了MySQL的情況下同時也能安裝MariaDB.(這是有意義的,例如你想從一個數據庫/應用遷移到另一個數據庫/應用中.) 以下是在已安裝MySQL的情況下,安裝MariaDB的主要

MariaDB由MySQL的創始人麥克爾·維德紐斯主導開發,他早前曾以10億美元的價格,將自己創建的公司MySQL賣給了SUN,此后,隨著SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中。

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲引擎方面,使用XtraDB(英語:XtraDB)來代替MySQL的InnoDB。MariaDB由MySQL的創始人Michael Widenius(英語:

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

MariaDB是MySQL源代碼的一個分支,在意識到Oracle會對MySQL許可做什么后分離了出來(MySQL先后被Sun、Oracle收購)。除了作為一個Mysql的“向下替代品”,網頁鏈接MariaDB包括的一些新特性使它

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

所以我們在比較同樣功能的MySQL 和MariaDB的版本,同時在完成設計和QA方面的審核后,一個很明顯的結論是MariaDB會是一個更好的產品。在大多數情況下,在選擇MariaDB的時候,人們會更多的考慮到功能方面的

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

MariaDB的API和協議兼容MySQL,另外又添加了一些功能,以支持本地的非阻塞操作和進度報告。

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

在此基礎上,由于擔心甲骨文MySQL的一個更加封閉的軟件項目,Fedora的計劃在Fedora 19中的以MariaDB取代MySQL

MariaDB和MySQL全面對比

誰在使用MySQL和MariaDB?

MySQL和MariaDB都發布了各自的用戶名單。

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

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

MariaDB和MySQL功能比較

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

讓我們來看一下只有其中一個數據庫專門提供的功能:

1. JSON數據類型

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

MariaDB沒有提供這一增強功能,認為JSON數據類型不是SQL標準的一部分。但為了支持從MySQL復制數據,MariaDB為JSON定義了一個別名,實際上就是一個LONGTEXT列。MariaDB聲稱兩者之間沒有顯著的性能差異,但他們并沒有提供基準測試數據來支持這個說法。

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

2. 默認身份認證

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

3. MySQL Shell

MySQL Shell是MySQL的高級命令行客戶端和代碼編輯器。除了SQL之外,MySQL Shell還提供了JavaScript和Python腳本功能。不過用戶不能使用mysqlsh訪問MariaDB服務器,因為MariaDB不支持MySQL X協議。

4. 加密

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

5. 密鑰管理

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

6. sys模式

MySQL 8.0提供了sys模式,這是一組對象,可幫助數據庫管理員和軟件工程師更好地理解通過Performance模式收集的數據。sys模式對象可用于優化和診斷,不過MariaDB沒有提供這個增強功能。

7. validate_password插件

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

8. 超級只讀

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

9. 不可見列

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

10. 線程池

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

MySQL和MariaDB性能

近年來,出現了很多關于MySQL和MariaDB引擎性能的基準測試。我們不認為“MySQL或MariaDB哪個更快”這個問題會有一個最終的答案,它在很大程度上取決于具體的使用場景、查詢、用戶和連接數量等因素。

不過,如果你確實想知道,下面列出了我們發現的一些最新的基準測試結果。請注意,這些測試都是在一組特定的數據庫+引擎(例如MySQL+InnoDB)組合上進行的,因此得出的結論只與特定的組合有關。

MySQL 8.0(InnoDB)和MariaDB 10.3.7(MyRocks)基準測試對比:

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

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

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

MySQL 8.0和MariaDB 10.3.5性能對比及UTF8的影響:

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

復制功能

兩個數據庫都提供了將數據從一個服務器復制到另一個服務器的功能。它們的主要區別是大多數MariaDB版本允許你從MySQL復制數據,這意味著你可以輕松地將MySQL遷移到MariaDB。但反過來卻沒有那么容易,因為大多數MySQL版本都不允許從MariaDB復制數據。

此外,值得注意的是,MySQL GTID不同于MariaDB GTID,所以將數據從MySQL復制到MariaDB后,GTID數據將相應地做出調整。

以下是這兩個數據庫在復制配置方面的一些差別:

MySQL的默認二進制日志格式是基于行的,而在MariaDB中,默認的二進制日志格式是混合式的。

log_bin_compress——這個配置決定了是否可以壓縮二進制日志。這個增強功能是MariaDB獨有的,因此MySQL不支持。

MySQL和MariaDB之間的不兼容性

MariaDB的文檔中列出了MySQL和MariaDB之間的數百個不兼容問題。因此,我們無法通過簡單的方案在這兩個數據庫之間進行遷移。

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

MySQL和MariaDB存儲引擎

MariaDB比MySQL支持更多的存儲引擎類型。但話說回來,數據庫可以支持多少個存儲引擎并不重要,重要的是哪個數據庫可以支持適合你需求的存儲引擎。

MariaDB支持的存儲引擎包括:

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支持的存儲引擎包括:

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

在Linux上安裝

當你在某些Linux發行版上安裝MySQL時,最后可能安裝的是MariaDB,因為它是很多(不是全部)Linux發行版的默認設置。

Red Hat Enterprise/CentOS/Fedora/Debian發行版默認會安裝MariaDB,而其他發行版(如Ubuntu)默認安裝MySQL。

云平臺上的可用性

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

MySQL在上面提到的三個平臺上也是可用的,同時還可以作為托管服務在谷歌云服務平臺上運行。

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

MySQL和MariaDB許可

MariaDB采用了GPL v2許可,而MySQL提供了兩個許可選項——GPL v2(用于社區版)和企業許可。

MySQL的兩個許可之間的主要區別在于可用的功能和支持服務。用戶可以使用MariaDB的所有功能,但對于MySQL來說并非如此。MySQL的社區版不包含線程池等功能,而這些功能會對數據庫和查詢性能產生重大影響。

發布頻率和更新

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

技術支持

MySQL的支持團隊(包括MySQL開發人員和支持工程師)為客戶提供全天候服務。甲骨文提供了多種支持選項,包括擴展支持、持續支持和高級支持,具體取決于客戶的要求。MariaDB支持團隊的支持工程師包括了MariaDB和MySQL數據庫專家(因為很多功能最初是由MySQL團隊開發的),他們為生產系統提供全天候的企業級支持。

正在進行中的開發

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

結論

好吧,我們無法為你做出決定。我們能做的就是有針對性地問你一些問題,然后你自己做出決定: 你是否分別基于這兩個數據庫對你的產品性能做過測試?哪一個表現更好,為什么? 你是否打算使用其中一個數據庫專門提供的功能? 你是否打算使用其中一個數據庫專門提供的數據庫引擎? 能夠對數據庫的開發過程產生影響對你來說有多重要?能夠參與下一個功能變更投票對你來說有多重要? 你是要為企業版本付費還是使用社區版?社區版的功能是否能夠滿足你的需求? 你的操作系統是否默認支持你所選的數據庫?要部署它需不需要很多工作量? 你使用的是哪個云提供商?他們是否提供托管服務,其中包括你選擇的數據庫? 你是否計劃將來從一種數據庫類型遷移到另一種數據庫類型?如果是這樣,你是否考慮過兼容性和復制方面的問題?

更多關于MySQL和MariaDB區別與性能全面對比請查看下面的相關鏈接

一,CentOS7環境下1.安裝Mysql5.6.19,安裝成功后,端口號:3306[[email protected]]#mysql-uroot-h127.0.0.1-P3306-pmysql>select version();version()|5.6.19|1 row in set(0.00 sec)2.安裝MariaDB10.0.12,安裝成功后,口端口號:3307[[email protected]]#mysql-uroot-h127.0.0.1-P3307-pmysql>select version();version()|10.0.12-MariaDB-log|1 row in set(0.00 sec)下面是,在Mysql安裝好后,安裝MariaDB10.0.12的詳細方法下載最新版本的二進制編譯包tar.gz(目前為mariadb-10.0.12-linux-x86_64),并將它解壓到你的自定義目錄中.本文檔假定安裝目錄為/opt.創建數據所在目錄及符號鏈接,如下所示:[[email protected] opt]#mkdir mariadb-data[[email protected] opt]#ln-s mariadb-10.0.12-linux-x86_64 mariadb[[email protected] opt]#ls-altotal 20drwxr-xr-x.5 root root 4096 2014-09-26 07:27.dr-xr-xr-x.23 root root 4096 2014-09-26 06:38.lrwxrwxrwx.1 root root 27 2014-09-26 07:27 mariadb->mariadb-10.0.12-linux-x86_64drwxr-xr-x.13 root root 4096 2014-09-26 07:07 mariadb-10.0.12-linux-x86_64drwxr-xr-x.2 root root 4096 2014-09-26 07:26 mariadb-data創建組mariadb及用戶mariadb,設置文件對應的所屬權限:[[email protected] opt]#groupadd-system mariadb[[email protected] opt]#useradd-c"MariaDB Server"-d/opt/mariadb-g mariadb-system mariadb[[email protected] opt]#chown-R mariadb:mariadb mariadb-10.0.12-linux-x86_64/[[email protected] opt]#chown-R mariadb:mariadb mariadb-data/通過從support-files中拷貝my.cnf,在/opt/mariadb目錄下創建新的my.cnf:[[email protected] opt]#cp mariadb/support-files/my-medium.cnf mariadb-data/my.cnf[[email protected] opt]#chown mariadb:mariadb mariadb-data/my.cnf編輯文件/opt/mariadb-data/my.cnf,增加自定義值,socket,port,user及最重要的設置:data目錄和base目錄.最后的設置至少是這樣的:[client]port=3307socket=opt/mariadb-data/mariadb.sock[mysqld]datadir=opt/mariadb-databasedir=opt/mariadbport=3307socket=opt/mariadb-data/mariadb.sockuser=mariadb從support-files文件中拷貝init.d腳本到對應的位置:[[email protected] opt]#cp mariadb/support-files/mysql.server/etc/init.d/mariadb[[email protected] opt]#chmod+x/etc/init.d/mariadb編輯/etc/init.d/mariadb,使用 mariadb替換 mysql設置項,如下所示:Provides:mysqlProvides:mariadbbasedir=basedir=opt/mariadbdatadir=datadir=opt/mariadb-datalock_file_path="$lockdir/mysqllock_file_path="$lockdir/mariadb你需要告訴mariadb讀取唯一的cnf文件.在$bindir/mysqld_safe之后加上-defaults-file=opt/mariadb-data/my.cnf.最后參數設置應該是這樣的:Give extra arguments to mysqld with the my.cnf file.This scriptmay be overwritten at next upgrade.bindir/mysqld_safe-defaults-file=opt/mariadb-data/my.cnf-datadir="$datadir"-pid-file="$mysqld_pid_file_path"$other_args>/dev/null 2>&1&顯式指定 my.cnf作為傳入參數,來運行 mysql_install_db:[[email protected] opt]#cd mariadb[[email protected] mariadb]#scripts/mysql_install_db-defaults-file=opt/mariadb-data/my.cnf現在你可以這樣啟動MariaDB:[[email protected] opt]#etc/init.d/mariadb startStarting MySQL SUCCESS把MariaDB啟動設置為系統級別啟動:[[email protected] opt]#cd/etc/init.d[[email protected] init.d]#chkconfig-add mariadb[[email protected] init.d]#chkconfig-levels 3 mariadb on最后,測試現在有兩個數據庫服務實例在運行:[[email protected]~]#mysql-e"SELECT VERSION();VERSION()|5.6.19|[[email protected]~]#mysql-e"SELECT VERSION();socket=opt/mariadb-data/mariadb.sockVERSION()|10.0.12-MariaDB-log|內容來自www.13333515.buzz請勿采集。


  • 本文相關:
  • 淺談mysql和mariadb區別(mariadb和mysql的性能比較)
  • 淺談mysql和mariadb區別
  • 詳談mysql和mariadb區別與性能全面對比
  • 記一次mariadb數據庫無法連接
  • exchange在接收連接器上啟用匿名中繼的方法
  • mariadb中的thread pool詳細介紹和使用方法
  • mariadb 在低配 vps 上崩潰問題處理方案
  • centos 7中成功安裝mariadb的方法教程
  • centos 7安裝mysql5.5和安裝 mariadb使用的命令
  • 淺談mysql和mariadb區別
  • mongodb快速入門筆記(八)之mongodb的java驅動操作代碼講解
  • mariadb性能調優工具mytop的使用詳解
  • MariaDB與MySQL兩個數據庫怎么樣同時安裝使用
  • mariadb是怎么產生 的 跟mysql有啥區別
  • 是用mysql還是mariadb
  • 如何從MySQL遷移到MariaDB
  • MariaDB和MySQL差別大嗎
  • window mysql和mariadb可以同時安裝嗎
  • mariadb和mysql哪個好
  • mariadb的命令和mysql的命令一樣嗎?
  • mariadb 10 和 mysql 命令一樣嗎
  • 安裝了mariadb還用安裝mysql嗎
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁mariadb淺談mysql和mariadb區別(mariadb和mysql的性能比較)淺談mysql和mariadb區別詳談mysql和mariadb區別與性能全面對比記一次mariadb數據庫無法連接exchange在接收連接器上啟用匿名中繼的方法mariadb中的thread pool詳細介紹和使用方法mariadb 在低配 vps 上崩潰問題處理方案centos 7中成功安裝mariadb的方法教程centos 7安裝mysql5.5和安裝 mariadb使用的命令淺談mysql和mariadb區別mongodb快速入門筆記(八)之mongodb的java驅動操作代碼講解mariadb性能調優工具mytop的使用詳解淺談mysql和mariadb區別centos 7安裝mysql5.5和安裝 marcentos7 下mysql重新啟動mariadbmariadb中1045權限錯誤導致拒絕用mac中mariadb數據庫的安裝步驟mysql分支選擇參考:percona還是詳解centos 使用yum安裝mariadbmariadb的主從復制、主主復制、半記一次mariadb數據庫無法連接centos安裝和設置mariadb的教程mysql分支選擇參考:percona還是mariadb我是如何用2個unix命令給mariadb sql提速關于mongoose連接mongodb重復訪問報錯的解centos中找回mariadb數據庫root用戶權限的mariadb中的thread pool詳細介紹和使用方mariadb中1045權限錯誤導致拒絕用戶訪問的mariadb的主從復制、主主復制、半同步復制centos6.7系統中編譯安裝mariadb數據庫mac中mariadb數據庫的安裝步驟centos7 下mysql重新啟動mariadb篇
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.13333515.buzz All Rights Reserved
    3排列五开奖结果