久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

為什么MariaDB更優(yōu)于MySQL

 liang1234_ 2019-02-05

本文為讀者提供MariaDB和MySQL的深入見解。分析兩者并討論它們之間的差異,。還有一部分內(nèi)容闡述為什么MySQL用戶應該切換到MariaDB,。

如今,組織有一系列數(shù)據(jù)庫可供選擇--無論是商業(yè)還是開源,。曾經(jīng)有一段時間,,大多數(shù)數(shù)據(jù)庫管理系統(tǒng)(DBMS)都是商業(yè)的。但是現(xiàn)在,,隨著眾多開源數(shù)據(jù)庫的推出,,行業(yè)專業(yè)人士更愿意使用它們。實際上,,開源數(shù)據(jù)庫在當今市場上占有相當大的份額,,因為用戶可以根據(jù)需求自由地實現(xiàn)系統(tǒng),并充分利用這些系統(tǒng),。

開源數(shù)據(jù)庫系統(tǒng)可從Oracle,,Microsoft,Google,,Amazon和Rackspace等各種供應商處獲得,。開源數(shù)據(jù)庫管理系統(tǒng)(DBMS)的歷史并不長。第一個可用的開源數(shù)據(jù)庫管理系統(tǒng)是MySQL,,它于1995年推出,,直到今天,它已經(jīng)有很多重大的改進,,使其成為商業(yè)數(shù)據(jù)庫軟件的強大競爭對手,。

開源數(shù)據(jù)庫管理系統(tǒng)越來越受歡迎,不僅因為它們功能豐富,,成本低廉,,而且還因為它們的操作效率,。用戶享受在根據(jù)個人需求定制源代碼時的自由,以及少量的編程知識是也是一個加分項,。Gartner報告說,,開源數(shù)據(jù)庫管理系統(tǒng)每年增長42%,到2020年這個行業(yè)的價值將達到80億美元,。報告中約80%的用戶使用某種開源軟件,,包括數(shù)據(jù)庫管理系統(tǒng)(DBMS)。像微軟和IBM這樣的各種商業(yè)供應商也提供他們數(shù)據(jù)庫管理系統(tǒng)(DBMS)軟件的“快速版”,。

最廣泛采用的開源數(shù)據(jù)庫管理系統(tǒng)(DBMS)是MySQL和MariaDB,。本文討論它們的相似之處,,差異和相對優(yōu)點,,然后再提出用戶應該遷移到MariaDB的原因。

數(shù)據(jù)庫

數(shù)據(jù)庫是以表格形式保存數(shù)據(jù)的特定結(jié)構(gòu),。支持通過基于表格結(jié)構(gòu)的數(shù)據(jù)流的軟件稱為數(shù)據(jù)庫管理系統(tǒng)(DBMS),。使用最廣泛的數(shù)據(jù)庫管理系統(tǒng)(DBMS)是關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。數(shù)據(jù)庫管理系統(tǒng)(DBMS)是一種計算機軟件應用程序,,可與終端用戶,,其他應用程序和數(shù)據(jù)庫本身交互以捕獲數(shù)據(jù)。通用數(shù)據(jù)庫管理系統(tǒng)允許定義,,創(chuàng)建,,查詢,更新和管理數(shù)據(jù)庫,。

數(shù)據(jù)庫及其數(shù)據(jù)的功能是:

數(shù)據(jù)定義:創(chuàng)建,,修改和刪除為數(shù)據(jù)組織奠定基礎的定義

數(shù)據(jù)更新:插入,修改和刪除數(shù)據(jù)

檢索:通過進行特定查詢從整個數(shù)據(jù)庫檢索數(shù)據(jù)

管理:用戶創(chuàng)建和修改,,數(shù)據(jù)安全性,,性能監(jiān)控,數(shù)據(jù)完整性,,并發(fā)控制和數(shù)據(jù)恢復

因此,,數(shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫模型,數(shù)據(jù)庫管理系統(tǒng)(DBMS)和數(shù)據(jù)庫的組合,。

MySQL

MySQL是一個用C和C ++編寫的開源多線程關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),。MySQL由瑞典公司MySQL AB創(chuàng)建,該公司由David Axmark,,Allan Larsson和Micheal Monty Widenius創(chuàng)建,,并于1994年開始開發(fā)。第一個版本于1995年5月23日發(fā)布,。MySQL是中的”My“取自聯(lián)合創(chuàng)始人Monty Widenius女兒的名字,。MySQL海豚標志--Sakila是從用戶在“Name the Dolphin”比賽中的大量提議中選出的,。

MySQL服務器適用于任務關鍵型,重載生產(chǎn)系統(tǒng)以及嵌入大規(guī)模部署的軟件,。它被認為是LAMP棧(Linux,,Apache,MySQL和PHP)的核心組件,。MySQL數(shù)據(jù)庫適用于Linux,,Windows,MAC,,BSD UNIX等各種操作系統(tǒng)平臺,。維基百科,F(xiàn)acebook和YouTube等熱門網(wǎng)站使用MySQL,。

MySQL現(xiàn)在是Oracle公司以及其附屬公司擁有的商標,,并且是雙重許可。用戶可以選擇GNU許可作為開源軟件使用,,甚至可以購買有Oracle許可證的商業(yè)軟件,。

MySQL體系結(jié)構(gòu)

MySQL服務器基于分層架構(gòu),由主要子系統(tǒng)和支持組件組成,,它們通過相互交互來讀取,,解析和執(zhí)行查詢以返回結(jié)果。

MySQL的五種主要子系統(tǒng)是:

  • 查詢引擎
  • 存儲管理器
  • 緩沖管理器
  • 事務管理器
  • 恢復管理器

查詢引擎:它包含三個主要的相關組件 - 語法分析器,,查詢優(yōu)化器和執(zhí)行組件,。語法分析器以一種MySQL引擎能夠理解的形式分解從調(diào)用程序接收到的SQL命令?!安樵儍?yōu)化器”簡化執(zhí)行組件使用的語法,,然后為查詢執(zhí)行準備最有效的計劃。執(zhí)行組件根據(jù)它接收的信息解釋執(zhí)行計劃,,并向其他組件提出請求以檢索記錄,。

存儲管理器:與操作系統(tǒng)連接,以用戶表,,索引和日志以及內(nèi)部系統(tǒng)數(shù)據(jù)的形式將數(shù)據(jù)寫入磁盤,。

查詢緩存: MySQL引擎使用查詢緩存--極其高效的結(jié)果集緩存機制,這極大地減少了查詢的響應時間,,這些查詢被調(diào)用當檢索與先前查詢相同的數(shù)據(jù),。

緩沖區(qū)管理器:處理查詢引擎和存儲管理器對數(shù)據(jù)請求之間的所有內(nèi)存管理問題。MySQL使用內(nèi)存來緩存可以返回的結(jié)果集,,并且緩存被保存在緩沖區(qū)管理器中,。

事務管理器:這個子系統(tǒng)提供了鎖定功能,以確保多個用戶以一致的方式訪問數(shù)據(jù),而不會損壞或破壞數(shù)據(jù),。

恢復管理器:為了在發(fā)生任何類型的數(shù)據(jù)丟失的情況下進行檢索,,會保留數(shù)據(jù)的副本。

MySQL的兩個支持組件是:

  • 進程管理
  • 函數(shù)庫

進程管理器:它執(zhí)行兩個主要功能 -- 管理通過網(wǎng)絡連接的用戶,,以及通過多線程,,線程鎖定和執(zhí)行線程安全操作同步任務和進程。

函數(shù)庫:它包含通用的函數(shù),,如字符串操作,,排序操作和執(zhí)行特定于操作系統(tǒng)的函數(shù),如內(nèi)存管理和文件I / O,。

MySQL的特點

  • 關系數(shù)據(jù)庫管理系統(tǒng): MySQL支持所有功能,,這使得它成為一個完整的關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。它支持完整的SQL作為查詢和更新數(shù)據(jù)的標準化語言,,并且可以管理數(shù)據(jù)庫,。
  • 簡單而安全:與其他數(shù)據(jù)庫管理系統(tǒng)(DBMS)軟件相比,MySQL使用非常簡單且具有交互性,,并且具有可靠的數(shù)據(jù)安全層,,可為數(shù)據(jù)提供高效的加密,,因此非常安全,。
  • 客戶機/服務器體系結(jié)構(gòu):其簡單的客戶機/服務器體系結(jié)構(gòu)可幫助終端用戶創(chuàng)建一個與許多客戶機連接的服務器,以便與服務器進行通信進行插入,,更新和管理數(shù)據(jù)庫,。
  • 可伸縮性: MySQL可以處理大量數(shù)據(jù)而不會出現(xiàn)任何卡頓 -- 多達5000萬行。它可以處理高達8TB的數(shù)據(jù)而沒有任何問題,。
  • 跨平臺:與幾乎所有操作系統(tǒng)兼容,,如UNIX,Windows,,Linux,,MAC OS X等。
  • 高性能,,靈活且高效的生產(chǎn)力: MySQL提供更快速,,高度可靠,便宜的存儲解決方案,,并支持大量嵌入式應用程序,。它利用觸發(fā)器,程序和視圖來提高生產(chǎn)力,。

MariaDB

MariaDB是MySQL的分支版本,。它主要是由于MySQL在被Oracle公司收購時出現(xiàn)的問題而開發(fā)的。MariaDB是一個通用的數(shù)據(jù)庫管理系統(tǒng)(DBMS),,它具有可擴展的架構(gòu),,可通過可插拔存儲引擎支持大量的用例,。它使用不同的存儲引擎來支持不同的用例。

MariaDB是一款開源的多線程關系數(shù)據(jù)庫管理系統(tǒng),,在GNU公共許可證(GPL)下發(fā)布,。其首席開發(fā)人員是Michael Monty Widenius,他也是MySQL AB的創(chuàng)始人之一,。作為數(shù)據(jù)庫系統(tǒng),,許多功能有助于MariaDB的普及。其速度是其最顯著的特點之一,。MariaDB也具有很強的可擴展性,,能夠處理數(shù)萬張表和數(shù)十億行數(shù)據(jù)。它還可以快速平穩(wěn)地管理少量數(shù)據(jù),,方便小型企業(yè)或個人項目,。另一個與前任不同的特點是專注于安全。MariaDB的內(nèi)置功能包括操作和格式化文本,,業(yè)務和統(tǒng)計計算,,記錄時間順序信息,

MariaDB服務器是世界上最流行的開源數(shù)據(jù)庫之一,。它在Debian和Ubuntu中可用,,現(xiàn)在是Arch Linux,Manjaro,,openSUSE,,Red Hat Enterprise Linux,CentOS,,F(xiàn)edora和SUSE Linux Enterprise的默認數(shù)據(jù)庫,。作為世界上最廣泛采用和廣泛部署的產(chǎn)品之一,MariaDB服務器收到阿里巴巴,,F(xiàn)acebook和谷歌等公司的捐款,。最近,微軟還聯(lián)手支持MariaDB社區(qū),。

MariaDB的特點

  • MariaDB可用于GPL,,LGPL和BSD。
  • 它包括廣泛的存儲引擎選擇,,包括高性能存儲引擎,,用于與其他關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)數(shù)據(jù)源一起工作。
  • 它使用標準和流行的查詢語言,。
  • MariaDB在許多操作系統(tǒng)上運行,,并支持各種編程語言。
  • 它提供對PHP的支持,PHP是最流行的Web開發(fā)語言之一,。
  • 它提供Galera群集技術,。
  • MariaDB還提供了很多在MySQL中不可用的操作和命令,并消除/取代了對性能產(chǎn)生負面影響的功能,。

其他功能還包括多源復制,,融合IO優(yōu)化,表發(fā)現(xiàn)和聯(lián)機更改表,。

MariaDB和MySQL的比較分析

MariaDB擁有大量新功能,,這使得它在性能和用戶導向方面更加出色。讓我們來評估MariaDB和MySQL,,以確定哪一個更好,。這種選擇最終將取決于IT經(jīng)理以及他們對開源數(shù)據(jù)庫的熟悉程度。

MySQL和MariaDB之間的一些重要差異

1. 數(shù)據(jù)庫的使用情況:自1995年以來,,MySQL一直被視為迄今為止實施最為廣泛且最廣泛使用的開源數(shù)據(jù)庫。許多像Twitter,,YouTube,,Netflix和PayPal這樣的IT巨頭,以及美國國家航空航天局,,美國國防部隊和沃爾瑪都利用這個數(shù)據(jù)庫。

最近才到來的MariaDB也在各種IT巨頭組織(如Google,,Red Hat,,CentOS和Fedora)中作為后端軟件因此得到了強大的基礎,。

2. 數(shù)據(jù)庫和索引的結(jié)構(gòu): MySQL是一個純粹的關系數(shù)據(jù)庫,,集成了一個ANSI標準的信息模式,由表,,列,,視圖,過程,,觸發(fā)器,,游標等組成。MySQL的結(jié)構(gòu)化查詢語言(SQL)是ANSI SQL 99,。

而MariaDB是MySQL的一個分支,,因此具有相同的數(shù)據(jù)庫結(jié)構(gòu)和索引。該功能使MariaDB成為希望直接切換或升級后端的用戶的理想選擇,,而無需升級數(shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu),。

當從MySQL升級到MariaDB時,所有內(nèi)容(從數(shù)據(jù),表格定義,,結(jié)構(gòu)和API)都保持一致,。

3. 二進制和實現(xiàn): MySQL是使用C和C ++開發(fā)的,并且完全兼容幾乎所有操作系統(tǒng),,如Microsoft Windows,,MAC OS X,Linux,,F(xiàn)reeBSD,,UNIX,NetBSD,,Novell Netware和其他許多操作系統(tǒng),。

MariaDB使用C,C ++,,Bash和Perl開發(fā),。它與Microsoft Windows,Linux,,MAC OS X,,F(xiàn)reeBSD,Solaris等各種操作系統(tǒng)兼容,。

4. 復制和集群: MySQL通過主從主復制和主從復制提供強大的復制和集群,,并利用Galera集群實現(xiàn)多主集群。

MariaDB為主終端用戶提供與主從主復制和主從復制相同的復制和集群功能,。它還使用10.1版以后的Galera Cluster,。

5. 對數(shù)據(jù)庫的支持:通過Oracle全天候提供MySQL技術支持服務,支持團隊由專業(yè)開發(fā)人員和工程師組成,,他們提供各種工具,,如錯誤修復,修補程序和版本發(fā)布,。Oracle根據(jù)用戶的需求提供MySQL首要支持,,擴展支持和持續(xù)支持。

MariaDB通過開源社區(qū),,在線論壇甚至通過專家為用戶提供強有力的支持,。MariaDB通過企業(yè)訂閱提供24小時全天候支持,尤其適用于任務關鍵型生產(chǎn)系統(tǒng),。

6. 安全性:就安全性而言,,MySQL為表空間數(shù)據(jù)提供了強大的加密機制。它提供了強大的安全參數(shù),,包括選擇好的密碼,,不給用戶不必要的特權,,并通過防止SQL注入和數(shù)據(jù)損壞來確保應用程序安全,。

MariaDB在內(nèi)部安全和密碼檢查,驗證模塊(PAM)和輕量級目錄訪問協(xié)議(LDAP)認證,,Kerberos,,用戶角色以及對表空間,,表格和日志的強大加密等安全功能方面取得了重大進展。

7. 可擴展性:支持可擴展系統(tǒng)的數(shù)據(jù)庫可以用許多不同的方式進行擴展,,如添加新的數(shù)據(jù)類型,,函數(shù),運算符,,聚集函數(shù),,索引方法和過程語言。MySQL不支持可擴展性,。

MariaDB建立在現(xiàn)代架構(gòu)的基礎之上,可以在每一層 -- 客戶端,,集群,,內(nèi)核和存儲上進行擴展。這種可擴展性提供了兩個主要優(yōu)勢,。它允許通過插件實現(xiàn)持續(xù)的社區(qū)創(chuàng)新,,這意味著可以通過MariaDB的可擴展架構(gòu)集成各種存儲引擎,,如MariaDB ColumnStore或Facebook的MyRocks。此外,,它使客戶能夠輕松配置MariaDB以支持從聯(lián)機事務處理(OLTP)到聯(lián)機分析處理(OLAP)的各種用例,。

8. JSON支持: MySQL支持本地JSON數(shù)據(jù)類型,,可以在JSON(JavaScript Object Notation)文檔中高效地訪問數(shù)據(jù),。與將JSON格式的字符串存儲在字符串列中相比,JSON數(shù)據(jù)類型提供了以下優(yōu)點:

  • 自動驗證存儲在JSON列中的JSON文檔,。無效的文檔會產(chǎn)生錯誤,。
  • 優(yōu)化的存儲格式:存儲在JSON列中的JSON文檔被轉(zhuǎn)換為允許快速讀取文檔元素的內(nèi)部格式。當服務器稍后必須讀取以這種二進制格式存儲的JSON值時,,不需要從文本表示中解析該值,。二進制格式的結(jié)構(gòu)使服務器能夠直接通過鍵或數(shù)組索引查找子對象或嵌套值,而無需讀取文檔中的所有值,。

另一方面,MariaDB Server 10.2引入了一整套用于讀寫JSON文檔的24個函數(shù),。另外,,JSON_VALID函數(shù)可以與校驗約束一起使用,,而像JSON_VALUE這樣的函數(shù)可以與動態(tài)列一起使用來索引特定的字段。

9. 授權許可: MySQL在GPL下以開放源代碼提供代碼,,并以MySQL Enterprise形式提供非GPL商業(yè)分發(fā)選項,。

MariaDB只能使用GPL,因為它的工作源于該許可條款下的MySQL源代碼,。

10. 性能: MariaDB通過MySQL的許多創(chuàng)新實現(xiàn)了同類最佳性能。其中包括線程池管理以最大限度地提高處理效率,,以及InnoDB數(shù)據(jù)存儲區(qū)內(nèi)的碎片整理等廣泛的優(yōu)化功能,。因此,,當從InnoDB表中刪除行時,可用空間立即可供操作系統(tǒng)使用,。不需要將舊表中的數(shù)據(jù)復制到新表中,,并且表空間中沒有空閑。MariaDB還提供與引擎無關的表統(tǒng)計信息,,以改善優(yōu)化程序的性能,,加快對表的大小和結(jié)構(gòu)進行查詢處理和數(shù)據(jù)分析。

如果沒有這些增強功能,,MySQL的性能就會下降,。MySQL中的線程利用率是次優(yōu)的,InnoDB表隨著時間的推移變得碎片化,,從而影響性能,。

MariaDB與MySQL

以下幾點突出了MariaDB的優(yōu)缺點。

優(yōu)點

  • MariaDB針對性能進行了優(yōu)化,,對于大型數(shù)據(jù)集,,它比MySQL強大得多,。從其他數(shù)據(jù)庫系統(tǒng)可以優(yōu)雅的遷移到MariaDB是另一個好處。
  • 從MySQL切換到MariaDB相對容易,,這對于系統(tǒng)管理員來說好像是一塊蛋糕,。
  • MariaDB通過引入微秒級精度和擴展用戶統(tǒng)計數(shù)據(jù)提供更好的監(jiān)控。
  • MariaDB增強了KILL命令,,使您可以殺死用戶的所有查詢(KILL USER 用戶名)或殺死查詢ID(KILL QUERY ID query_id),。MariaDB也轉(zhuǎn)而使用Perl兼容的正則表達式(PCRE),它提供比標準MySQL正則表達式支持更強大和更精確的查詢,。
  • MariaDB為與磁盤訪問,,連接操作,子查詢,,派生表和視圖,,執(zhí)行控制甚至解釋語句相關的查詢應用了許多查詢優(yōu)化。
  • MariaDB純粹是開源的,,而不是MySQL使用的雙重授權模式,。一些僅適用于MySQL Enterprise客戶的插件在MariaDB中具有等效的開源實現(xiàn)。
  • 與MySQL相比,,MariaDB支持更多的引擎(SphinxSE,Aria,,F(xiàn)ederatedX,,TokuDB,,Spider,ScaleDB等),。
  • MariaDB提供了一個用于商業(yè)用途的集群數(shù)據(jù)庫,它也支持多主復制,。任何人都可以自由使用它,,并且不需要依賴MySQL Enterprise系統(tǒng)。

缺點

  • 從版本5.5.36開始,,MariaDB無法遷移回MySQL。
  • 對于MariaDB的新版本,,相應的庫(用于Debian)不會及時部署,,由于依賴關系,這將導致必需升級到較新的版本,。
  • MariaDB的群集版本不是很穩(wěn)定。

遷移到MariaDB的主要原因

  • 首先,,MariaDB提供了更多更好的存儲引擎,。NoSQL支持由Cassandra提供,允許您在單個數(shù)據(jù)庫系統(tǒng)中運行SQL和NoSQL,。MariaDB還支持TokuDB,,它可以處理大型組織和企業(yè)用戶的大數(shù)據(jù)。
  • MySQL的平常(和緩慢的)數(shù)據(jù)庫引擎MyISAM和InnoDB已分別在MariaDB中由Aria和XtraDB取代,。Aria提供了更好的緩存,這對于磁盤密集型操作來說是有所不同的,。
  • MariaDB通過引入微秒級精度和擴展用戶統(tǒng)計數(shù)據(jù)提供更好的監(jiān)控,。
  • MariaDB的最新功能(如GIS,,動態(tài)色譜柱支持等)使其成為更好的選擇。
  • MariaDB遵循良好的行業(yè)標準,,同時發(fā)布安全公告和升級,,并以正確的方式處理預發(fā)布的保密性和發(fā)布后的透明度,。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多