What's New in MariaDB 10.4

yzs87發表於2019-06-08

MariaDB 10.4 是其當前的開發分支。 5 21 日, 10.4.5 RC release 版本釋出,距離正式版本釋出越來越近。 10.4 的新特性也越來越值得關注。本文總結 mariadb 官方釋出一些的部落格內容。對應詳細資訊,可以細讀 MariaDB 10.4 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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31493717/viewspace-2647092/,如需轉載,請註明出處,否則將追究法律責任。

相關文章