mariaDB

      網(wǎng)友投稿 826 2025-04-01

      https://baike.baidu.com/item/mariaDB/6466119?fr=aladdin

      MariaDB數(shù)據(jù)庫管理系統(tǒng)是MySQL的一個分支,主要由開源社區(qū)在維護,采用GPL授權許可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲引擎方面,使用XtraDB(英語:XtraDB)來代替MySQL的InnoDB。 MariaDB由MySQL的創(chuàng)始人Michael Widenius(英語:Michael Widenius)主導開發(fā),他早前曾以10億美元的價格,將自己創(chuàng)建的公司MySQL AB賣給了SUN,此后,隨著SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中。MariaDB名稱來自Michael Widenius的女兒Maria的名字。

      MariaDB基于事務的Maria存儲引擎,替換了MySQL的MyISAM存儲引擎

      ,它使用了Percona的 XtraDB,InnoDB的變體,分支的開發(fā)者希望提供訪問即將到來的MySQL 5.4 InnoDB性能。這個版本還包括了 PrimeBase XT (PBXT) 和 FederatedX 存儲引擎。

      目錄

      1 版本

      2 發(fā)展

      3 起源

      4 特點

      5 目標

      6 第三方工具

      7 兼容性

      版本

      MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人會從MySQL 5.5中了解到MariaDB的所有功能。

      從2012年11月12日起發(fā)布的10.0.0版開始,不再依照MySQL的版號。10.0.x版以5.5版為基礎,加上移植自MySQL 5.6版的功能和自行開發(fā)的新功能。 [1]

      發(fā)展

      成立于2009年,MySQL之父Michael “Monty” Widenius用他的新項目MariaDB完成了對MySQL的“反戈一擊”。開發(fā)這個分支的原因之一是:甲骨文公司收購了MySQL后,有將MySQL閉源的潛在風險,因此社區(qū)采用分支的方式來避開這個風險。 過去一年中,大型互聯(lián)網(wǎng)用戶以及Linux發(fā)行商紛紛拋棄MySQL,轉投MariaDB陣營。

      MariaDB是目前最受關注的MySql數(shù)據(jù)庫衍生版,也被視為開源數(shù)據(jù)庫MySQL的替代品

      。 [1]

      MariaDB雖然被視為MySql數(shù)據(jù)庫的替代品,但它在擴展功能、存儲引擎以及一些新的功能改進方面都強過MySQL。而且從MySQL遷移到MariaDB也是非常簡單的:

      1、數(shù)據(jù)和表定義文件(.frm)是二進制兼容的

      2、所有客戶端API、協(xié)議和結構都是完全一致的

      3、所有文件名、二進制、路徑、端口等都是一致的

      mariaDB

      4、所有的MySQL連接器,比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不變

      5、mysql-client包在MariaDB服務器中也能夠正常運行

      6、共享的客戶端庫與MySQL也是二進制兼容的

      也就是說,在大多數(shù)情況下,你完全可以卸載MySQL然后安裝MariaDB,然后就可以像之前一樣正常的運行。 [2]

      起源

      為何改了個名字呢,這其中是有些典故的。

      MySQL之父Widenius先生離開了Sun之后,覺得依靠Sun/Oracle來發(fā)展MySQL,實在很不靠譜,于是決定另開分支,這個分支的名字叫做MariaDB。

      MariaDB跟MySQL在絕大多數(shù)方面是兼容的,對于開發(fā)者來說,幾乎感覺不到任何不同。目前MariaDB是發(fā)展最快的MySQL分支版本,新版本發(fā)布速度已經(jīng)超過了Oracle官方的MySQL版本。

      在Oracle控制下的MySQL開發(fā),有兩個主要問題:1. MySQL核心開發(fā)團隊是封閉的,完全沒有Oracle之外的成員參加。很多高手即使有心做貢獻,也沒辦法做到。2. MySQL新版本的發(fā)布速度,在Oracle收購Sun之后大為減緩。Widenius有一個ppt,用數(shù)據(jù)比較了收購之前和之后新版本的發(fā)布速度。有很多bugfix和新的feature,都沒有及時加入到發(fā)布版本之中。

      以上這兩個問題,導致了各個大公司,都開發(fā)了自己定制的MySQL版本,包括Yahoo!/Facebook/Google/阿里巴巴+淘寶網(wǎng)等等。

      MySQL是開源社區(qū)的資產,任何個人/組織都無權據(jù)為己有。為了依靠廣大MySQL社區(qū)的力量來更快速的發(fā)展MySQL,另外開分支是必須的。

      MariaDB默認的存儲引擎是Maria,不是MyISAM。Maria可以支持事務,但是默認情況下沒有打開事務支持,因為事務支持對性能會有影響。可以通過以下語句,轉換為支持事務的Maria引擎。ALTER TABLE `tablename` ENGINE=MARIA TRANSACTIONAL=1;

      特點

      MariaDB相關書籍

      這個項目的很多代碼都改編于 MySQL 6.0,例如 “pool of threads”功能提供解決多 數(shù)據(jù)連接問題。MariaDB 5.1.41 RC可以到這里下載,32位和64位已編譯Linux版本,還包括源代碼包。MariaDB基于GPL 2.0發(fā)布。

      與 MySQL 相比較,MariaDB 更強的地方在于:

      Maria 存儲引擎

      PBXT 存儲引擎

      XtraDB 存儲引擎

      FederatedX 存儲引擎

      更快的復制查詢處理

      線程池

      更少的警告和bug

      運行速度更快

      更多的 Extensions (More index parts, new startup options etc)

      更好的功能測試

      數(shù)據(jù)表消除

      慢查詢日志的擴展統(tǒng)計

      支持對 Unicode 的排序

      相對于MySQL最新的版本5.6來說,在性能、功能、管理、NoSQL擴展方面,MariaDB包含了更豐富的特性。比如微秒的支持、線程池、子查詢優(yōu)化、組提交、進度報告等。詳情見列表。

      High Performance

      Developers

      DBAs

      NoSQL

      Thread pool

      線程池

      Microsecond precision & type

      微秒支持

      Segmented MyISAM keycache

      MyISAM緩存分段

      HandleSocket

      直接InnoDB/XtrDB訪問

      Group commit for the binary log

      binlog組提交

      SphinxSE for full-text search

      SphinxSE全文索引支持

      Authentication plugins - PAM, Active Directory

      授權插件

      Dynamic columns

      動態(tài)列

      Non-blocking client library

      非阻塞庫

      Subqueries materialize

      子查詢優(yōu)化

      LIMIT ROWS EXAMINED

      LIMIT行檢查限制

      GIS functionality

      地理信息系統(tǒng)支持

      Progress reporting

      進度報告

      目標

      目標是提供一個由 社區(qū)開發(fā)的、穩(wěn)定的、總是免費的MySQL分支,在用戶級別上兼容主流版本。我們?yōu)樽约旱陌姹竞蜕嫌巍⑸鐓^(qū)版的互操作性提高而努力。

      MariaDB分支與最新的MySQL發(fā)布版本的分支保持一致性, 例如MariaDB 5.1.47對應MySQL 5.1.47,等等。

      第三方工具

      MariaDB [4] ? 的API和協(xié)議兼容 MySQL,另外又添加了一些功能,以支持本地的非阻塞操作和進度報告。這意味著,所有使用MySQL的連接器、庫和應用程序也將會在MariaDB下工作。在此基礎上,由于擔心甲骨文MySQL的一個更加封閉的軟件項目, Fedora的計劃在Fedora 19中的以MariaDB取代 MySQL [5] ? ,維基媒體基金會的服務器同樣也使用MariaDB取代了MySQL。

      如下是支持MariaDB的客戶端工具:

      DBEdit 一個免費的MariaDB數(shù)據(jù)庫和其他數(shù)據(jù)庫管理應用程序。

      Navicat 一系列Windows、Mac OS X、Linux下專有數(shù)據(jù)庫管理應用程序。

      HeidiSQL 一個Windows上自由和開放源碼的MySQL客戶端。它支持MariaDB的5.2.7版本和以后的版本。[5][6]

      phpMyAdmin 一個基于網(wǎng)絡的MySQL數(shù)據(jù)庫管理應用程序

      兼容性

      MariaDB是MySQL的二進制替代品

      出于實用的目的,MariaDB是同一MySQL版本的二進制替代品(例如MySQL 5.1->MariaDB 5.1, MariaDB5.2和MariaDB 5.3是兼容的。MySQL 5.5將會和MariaDB 5.5保持兼容)。這意味著:

      數(shù)據(jù)和表定義文件(.frm)文件是二進制兼容的。

      所有客戶端APIs,協(xié)議和結構都是相同的。

      所有的文件名、二進制文件的路徑、端口、套接字等等……應該是相同的。

      所有MySQL的連接器(PHP Python Perl Java .NET MyODBC Ruby MySQL C連接器等) 和MariaDB的不變。

      有一些和PHP5的安裝問題要注意(一個和老的PHP5如何檢查庫兼容性的bug)。

      mysql-client包還可以與MariaDB服務器一起工作。

      這意味著對于大多數(shù)情況下,您可以卸載 MySQL和安裝MariaDB,可以工作很好。(不需要轉換成任何數(shù)據(jù)文件,如果使用同一主版本,比如5.1)。

      我們每月會與MySQL代碼庫合并來確保我們的兼容性和得到任何Oracle修正的bug和所有特性。

      我們在腳本升級方面也做了大量的工作,從MySQL 5.0升級到MariaDB 5.1比從MySQL 5.0到MySQL 5.1更容易。

      這就是說:MariaDB有許多的新選項、擴展,存儲引擎和bug修復,而MySQL是沒有的。您可以在MariaDB分發(fā)版本差異頁面找到不同版本的功能特性集。可在MariaDB versus MySQL – Features看到。

      MariaDB 5.1與MySQL 5.1的不兼容性

      為了讓MariaDB比MySQL提供更多更好的信息,極少情況下MariaDB會出現(xiàn)不兼容情況。

      如果使用MariaDB 5.1替代MySQL5.1,您將看到如下列舉的全部已知用戶級不兼容情況:

      安裝的包名稱,用MariaDB代替MySQL。

      時間控制可能不同,MariaDB在許多情況下比MySQL快。

      mysqld在MariaDB讀取是my.cnf中[MariaDB ]的部分。

      如果它不是完全相同的MariaDB編譯版本,不能使用僅提供二進制的存儲引擎庫給MariaDB使用 (這是因為服務器內部結構THD在MySQL和MariaDB之間不同。這也是與常見的MySQL版本不同的)。這應該不是問題,因為對于大多數(shù)人不加載新存儲引擎,MariaDB比MySQL帶有更多的存儲引擎。

      CHECKSUM TABLE可能產生不同的結果,由于MariaDB并不忽視NULL的列,MySQL 5.1忽略(未來的MySQL版本應該計算checksums和MariaDB一樣)。在MariaDB 開啟mysqld –old選項,您可以得到“舊式”的校驗和。但是要注意,這個MyISAM存儲引擎和Aria 存儲引擎在MariaDB實際上在內部使用新的checksum,因此,如果您使用的是—old , CHECKSUM命令將會更慢,因為它需要,一行一行的計算checksum。

      慢速查詢日志有更多信息關于查詢, 如果有一個腳本解析慢速查詢日志這可能是一個問題。

      MariaDB默認情況下比MySQL需要更多的內存,因為我們有默認情況下啟用Aria存儲引擎處理內部臨時表。如果需要MariaDB使用很少的內存(這是以犧牲性能為代價的),您可以設置aria_pagecache_buffer_size的值為 1M(默認值為128M)。

      如果正在使用MariaDB的新命令選項,新特性或新存儲引擎,那么就不能在MySQL和MariaDB之間輕易來回切換了。

      MariaDB 5.2與MySQL 5.1的不兼容性

      同MariaDB 5.1和MySQL 5.1的一樣,再補充一條:

      新增SQL_MODE的取值:IGNORE_BAD_TABLE_OPTIONS。如果未設置該值,使用一個表、字段或索引的屬性(選項)不被支持的存儲引擎將會導致錯誤。這個變化可能引起警告不正確的表定義出現(xiàn)在錯誤日志中,請利用mysql_upgrade修復這個警告。

      實際上,MariaDB 5.2是MariaDB 5.1和MySQL 5.1替代品。

      MariaDB 5.3與MySQL 5.1和MariaDB 5.2的不兼容性

      一些錯誤信息涉及到錯誤轉換的,MariaDB的差別在于消息中提供了更多的信息關于到底是哪里出了錯。

      MariaDB專用的錯誤編號已經(jīng)從1900開始,為的是不與MySQL的錯誤沖突。

      MariaDB在所有工作場景中可以基于微秒計時工作;而MySQL在某些情況下,如datetime和time,確實會丟失微秒部分。

      舊的--maria啟動選項被刪除。應該使用--aria前綴代替。(MariaDB 5.2都支持這—maria-和- aria-)

      SHOW PROCESSLIST有一個額外的process列,顯示一些命令的進度。您可以啟動mysqld用–old 標志禁用它。

      INFORMATION_SCHEMA.PROCESSLIST對進度報告有三個新列: STAGE, MAX_STAGE和 PROGRESS。

      以/*M! 或/*M!#####起頭的長注釋會得到執(zhí)行。

      如果使用max_user_connections = 0(也就是說任何數(shù)量的連接)啟動mysqld,您就不能在mysqld運行時修改全局變量了。這是因為當mysqld以max_user_connections = 0啟動時,它不分配計數(shù)結構(包括每個連接的互斥鎖)。如果稍后改變變量,這將導致錯誤的計數(shù)器。如果希望在運行時能改變這個變量,請在啟動時將它設置為一個較高的值。

      可以設置max_user_connections(包括全局變量和GRANT選項兩種場景)為-1來阻止用戶連接到服務器。全局變量max_user_connections變量不影響擁有super特權的用戶連接。

      IGNORE指令并不會忽略所有錯誤(比如致命錯誤),只是會忽略可以安全忽略的那些。

      MariaDB 5.5與MariaDB 5.3的不兼容性

      XtraDB

      XtraDB提供者Percona,在5.5代碼庫并未提供XtraDB所有早些時候的功能特性。正因為如此,MariaDB 5.5也不能提供它們所有功能特性。

      在5.5版本中XtraDB缺少的選項

      以下選項XtraDB 5.5是不支持的。如果在my.cnf文件中使用到這些選項,請刪除后再升級到5.5。

      innodb-adaptive-checkpoint;請使用innodb_adaptive_flushing_method 替代。

      innodb-auto-lru-dump;請使用innodb_buffer_pool_restore_at_startup 替代。

      innodb-blocking-lru-restore;請使用innodb-blocking-buffer-pool-restore 替代。

      innodb-enable-unsafe-group-commit

      innodb-expand-import;請使用 innodb_import_table_from_xtrabackup 替代。

      innodb-extra-rsegments;請使用innodb_rollback_segment 替代。

      innodb-extra-undoslots

      innodb-fast-recovery

      innodb-flush-log-at-trx-commit-session

      innodb-overwrite-relay-log-info

      innodb-pass-corrupt-table;請使用innodb_corrupt_table_action 替代。

      innodb-use-purge-thread

      xtradb-enhancements

      MySQL 數(shù)據(jù)庫

      版權聲明:本文內容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內刪除侵權內容。

      上一篇:無限條件的Excel條件格式
      下一篇:JVM-11虛擬機性能監(jiān)控與故障處理工具之【JDK的可視化工具-JConsole】
      相關文章
      中文字幕无码精品亚洲资源网| 一本色道久久88亚洲精品综合 | 亚洲av福利无码无一区二区| 亚洲а∨天堂久久精品9966| 亚洲国产精品无码av| 豆国产96在线|亚洲| 中文字幕 亚洲 有码 在线| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲?V无码成人精品区日韩 | 久久久久亚洲AV成人网人人网站 | 亚洲av综合色区| 国产美女亚洲精品久久久综合| 亚洲日韩国产二区无码| 亚洲成a人片在线看| 亚洲乱码日产精品BD在线观看| 99久久亚洲综合精品成人网| 日韩va亚洲va欧洲va国产| 亚洲热妇无码AV在线播放| 亚洲AⅤ永久无码精品AA| 亚洲成aⅴ人片在线影院八| 亚洲熟女少妇一区二区| 亚洲1区2区3区精华液| 亚洲性色精品一区二区在线| 亚洲人成电影网站色www| jlzzjlzz亚洲jzjzjz| 亚洲精品第五页中文字幕| 精品亚洲综合久久中文字幕| 亚洲色偷偷狠狠综合网| 亚洲午夜精品一级在线播放放| 超清首页国产亚洲丝袜| 国产精品亚洲综合一区| 亚洲五月综合缴情在线观看| 亚洲熟妇无码AV在线播放| 亚洲国产精品无码久久九九大片| 激情综合亚洲色婷婷五月| 亚洲成AV人综合在线观看| 亚洲午夜精品一区二区公牛电影院 | 国产亚洲精品国产| 久久久久亚洲AV无码网站| 亚洲а∨天堂久久精品9966| 国产成人亚洲综合在线|