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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

扔掉,MySQL!性能被 MariaDB 吊打…

發(fā)布時間:2024/4/11 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 扔掉,MySQL!性能被 MariaDB 吊打… 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
點擊上方“朱小廝的博客”,選擇“設(shè)為星標” 后臺回復(fù)"書",獲取后臺回復(fù)“k8s”,可領(lǐng)取k8s資料

MySQL的發(fā)展史

MySQL的歷史可以追溯到1979年,它的創(chuàng)始人叫作Michael Widenius,他在開發(fā)一個報表工具的時候,設(shè)計了一套API,后來他的客戶要求他的API支持sql語句,他直接借助于mSQL(當時比較牛)的代碼,將它集成到自己的存儲引擎中。但是他總是感覺不滿意,萌生了要自己做一套數(shù)據(jù)庫的想法。一到1996年,MySQL 1.0發(fā)布,僅僅過了幾個月的時間,1996年10月MySQL 3.11.1當時發(fā)布了Solaris的版本,一個月后,linux的版本誕生,從那時候開始,MySQL慢慢的被人所接受。1999年,Michael Widenius成立了MySQL AB公司,MySQL由個人開發(fā)轉(zhuǎn)變?yōu)閳F隊開發(fā),2000年使用GPL協(xié)議開源。2001年,MySQL生命中的大事發(fā)生了,那就是存儲引擎InnoDB的誕生!直到現(xiàn)在,MySQL可以選擇的存儲引擎,InnoDB依然是No.1。2008年1月,MySQL AB公司被Sun公司以10億美金收購,MySQL數(shù)據(jù)庫進入Sun時代。Sun為MySQL的發(fā)展提供了絕佳的環(huán)境,2008年11月,MySQL 5.1發(fā)布,MySQL成為了最受歡迎的小型數(shù)據(jù)庫。在此之前,Oracle在2005年就收購了InnoDB,因此,InnoDB一直以來都只能作為第三方插件供用戶選擇。2009年4月,Oracle公司以74億美元收購Sun公司,MySQL也隨之進入Oracle時代。2010年12月,MySQL 5.5發(fā)布,Oracle終于把InnoDB做成了MySQL默認的存儲引擎,MySQL從此進入了輝煌時代。然而,從那之后,Oracle對MySQL的態(tài)度漸漸發(fā)生了變化,Oracle雖然宣稱MySQL依然尊少GPL協(xié)議,但卻暗地里把開發(fā)人員全部換成了Oracle自己人,開源社區(qū)再也影響不了MySQL發(fā)展的腳步,真正有心做貢獻的人也被拒之門外,MySQL隨時都有閉源的可能……

橫空出世的MariaDB是什么鬼

先提一下MySQL名字的由來吧,Michael Widenius的女兒的簡稱就是MY,Michael Widenius大概也是把MySQL當成自己的女兒吧。看著自己辛苦養(yǎng)大的MySQL被Oracle搞成這樣,Michael Widenius非常失望,決定在MySQL走向閉源前,將MySQL進行分支化,依然是使用了自己女兒的名字MariaDB(瑪莉亞DB)。MariaDB數(shù)據(jù)庫管理系統(tǒng)是MySQL的一個分支,主要由開源社區(qū)在維護,采用GPL授權(quán)許可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲引擎方面,使用XtraDB來代替MySQL的InnoDB。MariaDB由MySQL的創(chuàng)始人Michael Widenius主導(dǎo),由開源社區(qū)的大神們進行開發(fā)。因此,大家都認為,MariaDB擁有比MySQL更純正的MySQL血脈。最初的版本更新與MySQL同步,相對MySQL5以后的版本,MariaDB也有相應(yīng)的5.1~5.5的版本。后來MariaDB終于擺脫了MySQL,它的版本號直接從10.0開始,以自己的步伐進行開發(fā),當然,還是可以對MySQL完全兼容。現(xiàn)在,MariaDB的數(shù)據(jù)特性、性能等都超越了MySQL。

測試環(huán)境

本性能測試環(huán)境如下:

  • CPU:I7

  • 內(nèi)存:8G

  • OS:Windows 10 64位

  • 硬盤類型:SSD

  • MySQL:8.0.19

  • MariaDB:10.4.12

分別在MySQl和MariaDB中創(chuàng)建名為performance的數(shù)據(jù)庫,并創(chuàng)建log表,都使用innodb作為數(shù)據(jù)庫引擎:

CREATE TABLE `performance`.`log`( ?`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,`time` DATETIME NOT NULL,`level` ENUM('info','debug','error') NOT NULL,`message` TEXT NOT NULL,PRIMARY KEY (`id`) ) ENGINE=INNODB CHARSET=utf8;

插入性能

單條插入

單條插入的測試結(jié)果如下表所示:

MariaDB單條數(shù)據(jù)插入的性能比MySQL強1倍左右。

批量插入

批量插入的測試結(jié)果如下表所示:

上面的測試結(jié)果,MariaDB并沒有絕對優(yōu)勢,甚至有時還比MySQL慢,但平均水平還是高于MySQL。

查詢性能

經(jīng)過了多次插入測試,我兩個數(shù)據(jù)庫里插入了很多數(shù)據(jù),此時用下面的sql查詢表中的數(shù)據(jù)量:

SELECT COUNT(0) FROM LOG

結(jié)果兩個表都是6785000條,MariaDB用時3.065秒,MySQL用時6.404秒。此時我機器的內(nèi)存用了6個G,MariaDB用了474284 K,MySQL只用了66848 K。看來MariaDB快是犧牲了空間換取的。

無索引

先查詢一下time字段的最大值和最小值:

SELECT MAX(TIME), MIN(TIME) FROM LOG

MariaDB用時6.333秒,MySQL用時8.159秒。接下來測試過濾time字段在0點到1點之間的數(shù)據(jù),并對time字段排序:

SELECT * FROM LOG WHERE TIME > '2020-02-04 00:00:00' AND TIME < '2020-02-04 01:00:00' ORDER BY TIME

MariaDB用時6.996秒,MySQL用時10.193秒。然后測試查詢level字符是info的數(shù)據(jù):

SELECT * FROM LOG WHERE LEVEL = 'info'

MariaDB用時0.006秒,MySQL用時0.049秒。最后測試查詢message字段值為debug的數(shù)據(jù):

SELECT * FROM LOG WHERE MESSAGE = 'debug'

MariaDB用時0.003秒,MySQL用時0.004秒。

有索引

分別對兩個數(shù)據(jù)庫的字段創(chuàng)建索引:

ALTER TABLE `performance`.`log` ?ADD ?INDEX `time`(`time`),ADD ?INDEX `level`(`level`),ADD FULLTEXT INDEX `message`(`message`);

MariaDB用時2分47秒,MySQL用時3分48秒。再用上面的測試項目進行測試,結(jié)果如下表所示:

有些結(jié)果添加了索引后還不如不加索引時理想,說明實際使用時并不是每個字段都需要添加索引的。

總結(jié)

在上面的測試中MariaDB的性能的確優(yōu)于MySQL,看來各大廠商放棄MySQL擁抱MariaDB還是非常有道理的。

作者:swanmy

blog.csdn.net/zhmh326/article/details/104168710?

想知道更多?掃描下面的二維碼關(guān)注我后臺回復(fù)"技術(shù)",加入技術(shù)群后臺回復(fù)“k8s”,可領(lǐng)取k8s資料【精彩推薦】
  • 原創(chuàng)|OpenAPI標準規(guī)范

  • 中臺不是萬能藥,關(guān)于中臺的思考和嘗試

  • ClickHouse到底是什么?為什么如此牛逼!

  • 原來ElasticSearch還可以這么理解

  • 面試官:InnoDB中一棵B+樹可以存放多少行數(shù)據(jù)?

  • 微服務(wù)下如何解耦?對于已經(jīng)緊耦合下如何重構(gòu)?

  • 如何構(gòu)建一套高性能、高可用、低成本的視頻處理系統(tǒng)?

  • 架構(gòu)之道:分離業(yè)務(wù)邏輯和技術(shù)細節(jié)

  • 星巴克不使用兩階段提交

點個贊+在看,少個 bug?????

總結(jié)

以上是生活随笔為你收集整理的扔掉,MySQL!性能被 MariaDB 吊打…的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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