MariaDB 10.4是其當前的開發分支。 5月21日,10.4.5的RC release版本發佈,距離正式版本發佈愈來愈近。10.4的新特性也愈來愈值得關注。本文總結mariadb官方發佈一些的博客內容。對應詳細信息,能夠細讀MariaDB 10.4的changelog:https://mariadb.com/kb/en/library/mariadb-1040-changelog/mysql
因爲字節長度的關係,一般狀況下Unicode字符集的性能比其餘字符集好比latin1低。MySQL8.0在這方面有了很大改進。在這方面,MariaDB 10.4比10.3也快不少。如今人們愈來愈喜歡使用emojis圖,這些圖須要utf8字符集進行存儲,因此這是一個至關重要的改進。因爲如今能夠將條件下推到物化子查詢中,因此MariaDB 10.4在IN()子查詢中效率更高。sql
依賴於redo log的大小,啓動和關閉InnoDB會花費一段時間。MariaDB對啓動、關閉、purge進行了改進。鑑於mariabackup和xtrabackup熱備工具的普及,這些改進尤其重要。最終,這些工具涉及InnoDB shutdown(回放redo log時)到啓動恢復,所以這些領域的改進大大減小了轉儲備份的時間。異步
MariaDB 10.4已經能夠進行瞬時DROP CLOLUMN操做。不需從新構建表,能夠對錶的列從新排序。咱們不能強調這是多麼重要。你可能想知道在生產環境中最多見的操做是什麼?添加和刪除索引尤其重要。另一個常見操做時添加新列或者刪除索引。目前爲止,最經常使用的方法是使用外部工具進行操做:pt-online-schema-change或gh-ost。兩個工具都有限制(好比,gh-ost不能在Galera Cluster中使用)。尤爲棘手的是表具備外鍵時也會有很大限制。瞬時ADD COLUMN已經可用,經過瞬時DROP COLUMN,schema能夠進行更改。這些瞬時操做也是咱們所需。像建立索引,schema能夠進行非阻塞更改,可是當使用複製時,這些操做有了很大挑戰。所以即便在生產環境中能夠執行這些操做,咱們建議仍是使用pt-online-schame-change。ide
Varchar列的擴展將變得更快,非索引列上額外字符集和排序規則的改變也將成爲瞬時操做。工具
另一個最大的改變在用戶管理方面。mysql.host表再也不使用並再也不建立。用戶的帳戶和全局權限將存到mysql.global_priv表中。對於經過選項管理MySQL和MariaDB用戶的工具來講,這些改變很重要。10.4以前的版本,須要重寫涉及用戶管理的案例。咱們認可確實須要改動這些地方,可是這對於維護MariaDB和MySQL工具來講毫無幫助。在用戶管理方面,MariaDB 10.4有一個選項控制過時用戶密碼。這絕對是向好的方向邁開重要的異步----有助於更好的實施密碼管理。性能
最後,10.4版本中,能夠設置sql_mode=MSSQL。這是一個初始實現,但在某點上sql_mode=ORACLE 也是初始實現。這代表了MariaDB對企業用戶的關注--隨着新增愈來愈多的特性和遷移問題愈來愈少,愈來愈多的用戶能夠從Oracle或Microsoft SQL Server 遷移到MariaDB。學習
最近看到一篇博客解釋MariaDB在InnoDB改進和兼容性方面的觀點。主要是MariaDB再也不從MySQL合入InnoDB新特性,將關注穩定性和性能的提高。也就是說MariaDB再也不兼容MySQL。像mysqldumper/mysqlloader邏輯備份工具將成爲遷移的惟一工具。慶幸的是,MariaDB有能力維護他本身的InnoDB分支。開發工具
性能方面,從歷史數據上看,MariaDB集成的InnoDB性能有所提高。code
對用戶來講,MariaDB10.4將比以前的release版本更加穩定。這也意味着,咱們須要學習兩種不一樣的存儲引擎內核--尤爲是性能方面的改動。須要開發工具支持InnoDB不一樣版本。咱們會關注這方面的進程。隨着引入愈來愈多不兼容的特性以及mysql8.0的很大改動,關注開發的新功能纔有意義而不是兼容MySQL。blog