文檔起源
對(duì)比percona來(lái)說(shuō),mariadb更“不像”一點(diǎn)MySQL,官方發(fā)布的10.1版本,對(duì)比的比較實(shí)現(xiàn)是官方版本的5.6以及5.7,這里主要想說(shuō)的,是10.1這個(gè)版本與官方版本5.7的主要區(qū)別。
主要特點(diǎn)
Galera
Galera是一個(gè)mysql經(jīng)典的多主share nothing的實(shí)現(xiàn)。目前對(duì)官方版本的支持比較有限,所以實(shí)際上用的時(shí)候,目前多推薦使用MariaDB,Mariadb也為Galera做了一些內(nèi)部的修正,來(lái)更好地為Galera服務(wù)。包括information_schema的一些變更,以及相關(guān)部署參數(shù)的支持。
目前階段,官方的Group Replication尚未GA,公開(kāi)市場(chǎng)上目前只有這一個(gè)多主的架構(gòu)實(shí)現(xiàn),如果業(yè)務(wù)上有非常強(qiáng)的數(shù)據(jù)一致性,以及數(shù)據(jù)庫(kù)可用性(業(yè)務(wù)連續(xù)性)的要求的話,官方版本是做不到這一點(diǎn)的。
文件透明加密
官方版本的TDE,透明加密,目前只能做到對(duì)數(shù)據(jù)文件的透明加密,對(duì)redo日志,以及binlog日志,目前還是明文存儲(chǔ)數(shù)據(jù)的。
Mariadb可以對(duì)redo,binlog等文件都進(jìn)行透明加密,最大限度上避免數(shù)據(jù)文件被竊后的損失。
這個(gè)加密帶來(lái)的問(wèn)題是,對(duì)于傳統(tǒng)的基于redo的備份軟件,備份執(zhí)行不再有效,對(duì)于傳統(tǒng)的,依賴(lài)binlog解析的工具來(lái)說(shuō),日志也是無(wú)法處理的。
這點(diǎn)上,只能依賴(lài)Mariadb的工具鏈。
當(dāng)然,傳統(tǒng)的slow log,general log,error log等是無(wú)法被加密的。
另外需要注意的一點(diǎn)是,目前支持基于文件秘鑰的加密,在企業(yè)安全相關(guān)標(biāo)準(zhǔn)上,有要求加密必須基于整體的加密系統(tǒng),這點(diǎn)上,官方企業(yè)版本,支持OKV的加密體系,相對(duì)會(huì)更好一點(diǎn)。
復(fù)制
一個(gè)主要的變動(dòng)是,row格式的binlog從庫(kù)執(zhí)行的時(shí)候,可以觸動(dòng)觸發(fā)器,這點(diǎn)與官方版本區(qū)別非常大。
還有一個(gè)是過(guò)濾器方面,mariadb可以基于gtid的dumain id執(zhí)行或者跳過(guò)。對(duì)于多級(jí)復(fù)雜的拓?fù)?,作用還是挺大的。
角色
基于角色的權(quán)限管理,官方版本到8版本才支持,到GA估計(jì)還需要一兩年,如果對(duì)這方面有強(qiáng)烈需求的話,不妨考慮一下Mariadb。
OR REPLACE語(yǔ)法
Mariadb對(duì)于創(chuàng)建刪除對(duì)象,可以支持使用if exists,if not exists,or replace語(yǔ)法,避免報(bào)錯(cuò)。
主要有:
- create database
- create function
- create server
- create user
- create view
- drop role
- drop user
- event的創(chuàng)建刪除
- index的創(chuàng)建刪除
- 觸發(fā)器的創(chuàng)建以及刪除