< 返回新聞公共列表

MariaDB和MySQL有什么區(qū)別?

發(fā)布時(shí)間:2022-07-07 14:31:00

MariaDB和MySQL有什么區(qū)別?在本文中,小編將和大家一起看看。


一、什么是MariaDB?

MariaDB是MySQL關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng) (RDBMS) 的開(kāi)源分支。由于擔(dān)心甲骨文收購(gòu)MySQL,2009 年開(kāi)發(fā)人員(包括一些最初從事 MySQL 工作的開(kāi)發(fā)人員)創(chuàng)建了分支。作為MySQL的一個(gè)分支,MariaDB與前者非常兼容。

它支持與MySQL相同的功能,但還具有其他功能,我們將在下面看到。一些最重要的特性是新的存儲(chǔ)引擎、JSON API 支持和并行數(shù)據(jù)復(fù)制。


二、什么是 MySQL?

MySQL是一種 RDBMS,可讓您將數(shù)據(jù)存儲(chǔ)在表中并對(duì)其進(jìn)行操作。它由 Michael Widenius于1996年首次發(fā)布,他現(xiàn)在是MariaDB的首席開(kāi)發(fā)人員。

MySQL是世界上最流行的 RDBMS,并被一些最大的科技公司和平臺(tái)使用。這包括 Facebook、YouTube 和Twitter。

可以在WordPress站點(diǎn)中找到有關(guān)MySQL流行程度的更具體示例。數(shù)據(jù)庫(kù)系統(tǒng)允許用戶(hù)存儲(chǔ)博客文章、用戶(hù)和插件信息。


MariaDB和MySQL有什么區(qū)別?.png


三、MariaDB和MySQL的區(qū)別

1、性能比較

與 MySQL相比,MariaDB 幾項(xiàng)優(yōu)化往往會(huì)提高性能。一般來(lái)說(shuō),當(dāng)談到 MySQL 與 MariaDB的性能時(shí),后者顯然更好。

2、數(shù)據(jù)庫(kù)視圖

關(guān)于數(shù)據(jù)庫(kù)“視圖”有一個(gè)巨大的性能優(yōu)化?!耙晥D”本質(zhì)上是虛擬數(shù)據(jù)庫(kù)表,可以像數(shù)據(jù)庫(kù)的常規(guī)表一樣進(jìn)行查詢(xún)。

在MySQL中,當(dāng)您查詢(xún)視圖時(shí),將查詢(xún)連接到該視圖的所有表,而不管查詢(xún)可能不需要其中一些表。這已在MariaDB中進(jìn)行了優(yōu)化,其中查詢(xún)僅針對(duì)那些需要的表。

3、列存儲(chǔ)

MariaDB以“ColumnStore”的形式提供了另一個(gè)強(qiáng)大的性能改進(jìn),它是一種分布式數(shù)據(jù)架構(gòu),可以極大地?cái)U(kuò)展 MariaDB。它可以線(xiàn)性擴(kuò)展以跨數(shù)據(jù)庫(kù)集群中的各種服務(wù)器存儲(chǔ)數(shù) PB 的數(shù)據(jù)。

4、更好的閃存存儲(chǔ)性能

MariaDB 還提供了一個(gè) MyRocks 存儲(chǔ)引擎,可以將 RocksDB 數(shù)據(jù)庫(kù)添加到其中。RocksDB 是一種數(shù)據(jù)庫(kù),旨在通過(guò)提供更高級(jí)別的數(shù)據(jù)壓縮來(lái)提高閃存存儲(chǔ)的性能。

5、分段密鑰緩存

MariaDB 以 Segmented Key Cache 的形式引入了另一項(xiàng)性能改進(jìn)。在典型的緩存中,不同的線(xiàn)程競(jìng)爭(zhēng)對(duì)緩存條目進(jìn)行鎖定。這些鎖稱(chēng)為互斥鎖。當(dāng)多個(gè)線(xiàn)程競(jìng)爭(zhēng)一個(gè)互斥鎖時(shí),只有其中一個(gè)能夠獲得它,而其他線(xiàn)程必須等待鎖被釋放才能執(zhí)行操作。這會(huì)導(dǎo)致這些線(xiàn)程中的執(zhí)行延遲,從而降低數(shù)據(jù)庫(kù)性能。

在分段鍵緩存的情況下,線(xiàn)程不需要鎖定整個(gè)頁(yè)面,但它可以只鎖定頁(yè)面所屬的特定段。這有助于多個(gè)線(xiàn)程并行工作,從而提高應(yīng)用程序的并行性,從而提高數(shù)據(jù)庫(kù)的性能。

6、虛擬列

MariaDB 另一個(gè)有趣的特性是它支持虛擬列。這些列能夠在數(shù)據(jù)庫(kù)級(jí)別執(zhí)行計(jì)算。這在許多應(yīng)用程序訪(fǎng)問(wèn)同一列時(shí)非常有用,因此無(wú)需在每個(gè)應(yīng)用程序中編寫(xiě)計(jì)算。此功能在 MySQL 中不可用。

7、并行執(zhí)行查詢(xún)

MariaDB v10.0 及更高版本允許并行執(zhí)行多個(gè)查詢(xún)。這個(gè)想法是來(lái)自主服務(wù)器的一些查詢(xún)可以在從服務(wù)器中復(fù)制,因此可以并行執(zhí)行。這種查詢(xún)執(zhí)行的并行性無(wú)疑為 MariaDB 提供了優(yōu)于 MySQL 的優(yōu)勢(shì)。

8、線(xiàn)程池

MariaDB 還引入了一個(gè)名為“線(xiàn)程池”的新概念。以前,當(dāng)需要到數(shù)據(jù)庫(kù)的多個(gè)連接時(shí),對(duì)于每個(gè)連接,都會(huì)打開(kāi)一個(gè)線(xiàn)程,從而形成基于“每個(gè)連接一個(gè)線(xiàn)程”的架構(gòu)。

使用“線(xiàn)程池”,新連接可以獲取并查詢(xún)數(shù)據(jù)庫(kù)的開(kāi)放線(xiàn)程池。這樣,不需要為每個(gè)新的連接請(qǐng)求打開(kāi)一個(gè)新線(xiàn)程,從而導(dǎo)致更快的查詢(xún)結(jié)果。此功能在 MySQL 的企業(yè)版中可用,但在社區(qū)版中不可用。

9、存儲(chǔ)引擎

MariaDB 提供了幾個(gè)開(kāi)箱即用的強(qiáng)大存儲(chǔ)引擎,這些引擎在 MySQL 中不可用。例如,XtraDB、Aria 等。要為 MySQL 設(shè)置這些存儲(chǔ)引擎,您需要手動(dòng)安裝它們,這可能不是最方便的過(guò)程。

10、兼容性

MariaDB 團(tuán)隊(duì)正在確保 MariaDB 可以在現(xiàn)有應(yīng)用程序中無(wú)縫替換 MySQL。事實(shí)上,對(duì)于每個(gè)版本的 MySQL,他們發(fā)布相同的 MariaDB 版本號(hào),表示 MariaDB 普遍兼容對(duì)應(yīng)的 MySQL 版本。這開(kāi)啟了無(wú)縫切換到 MariaDB 的可能性,而無(wú)需對(duì)應(yīng)用程序代碼庫(kù)進(jìn)行任何修改。

11、開(kāi)源與專(zhuān)有數(shù)據(jù)庫(kù)

MySQL是一個(gè)大型項(xiàng)目,由世界上最大的組織之一——甲骨文管理。這有其優(yōu)點(diǎn)和缺點(diǎn)。好處是,這可能意味著更好的安全性、軟件穩(wěn)定性和量身定制的客戶(hù)支持體驗(yàn)。然而,一個(gè)顯著的缺點(diǎn)是在大型組織中發(fā)布新功能需要花費(fèi)大量時(shí)間。

另一方面,MariaDB是完全開(kāi)源的,他們?cè)诮邮芡獠控暙I(xiàn)并將其作為新功能和增強(qiáng)功能發(fā)布方面非??臁?/p>


總結(jié):根據(jù)MariaDB和MySQL的區(qū)別,兩者都各自?xún)?yōu)缺點(diǎn),都有理由選擇其中之一,因此小編建議大家根據(jù)自己需求進(jìn)行選擇。



/template/Home/Zkeys724/PC/Static