What's New in MariaDB 10.4

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/

性能提升

由於字節長度的關係,通常情況下Unicode字符集的性能比其他字符集比如latin1低。MySQL8.0在這方面有了很大改進。在這方面,MariaDB 10.4比10.3也快很多。現在人們越來越喜歡使用emojis圖,這些圖需要utf8字符集進行存儲,所以這是一個相當重要的改進。由於現在可以將條件下推到物化子查詢中,所以MariaDB 10.4在IN()子查詢中效率更高。

依賴於redo log的大小,啓動和關閉InnoDB會花費一段時間。MariaDB對啓動、關閉、purge進行了改進。鑑於mariabackup和xtrabackup熱備工具的普及,這些改進尤爲重要。最終,這些工具涉及InnoDB shutdown(回放redo log時)到啓動恢復,因此這些領域的改進大大減少了轉儲備份的時間。

InnoDB改進

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。

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分支

最近看到一篇博客解釋MariaDB在InnoDB改進和兼容性方面的觀點。主要是MariaDB不再從MySQL合入InnoDB新特性,將關注穩定性和性能的提升。也就是說MariaDB不再兼容MySQL。像mysqldumper/mysqlloader邏輯備份工具將成爲遷移的唯一工具。慶幸的是,MariaDB有能力維護他自己的InnoDB分支。

性能方面,從歷史數據上看,MariaDB集成的InnoDB性能有所提升。

對用戶來說,MariaDB10.4將比之前的release版本更加穩定。這也意味着,我們需要學習兩種不同的存儲引擎內核--尤其是性能方面的改動。需要開發工具支持InnoDB不同版本。我們會關注這方面的進程。隨着引入越來越多不兼容的特性以及mysql8.0的很大改動,關注開發的新功能纔有意義而不是兼容MySQL。

原文

https://severalnines.com/blog/whats-new-mariadb-104

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章