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