What's New in MariaDB 10.4
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- What’s new in RxSwift 5Swift
- What's new of dubbogo v1.4Go
- What's new in dubbo-go-pixiu 0.4.0Go
- What’s New in TiDB 3.0.0-rc.1TiDB
- What's new in Dubbo-go v1.5.1Go
- What's new in Dubbo 3.1.4 and 3.2.0-beta.3
- What's new in Dubbo 3.1.5 and 3.2.0-beta.4
- What's new in dubbo-go v1.5.6Go
- VMware vSphere:What's New V5.1培訓
- WWDC18 What’s New in LLVM 個人筆記LVM筆記
- Win10 v2004的最新功能曝光:What’s New類似高階玩家官方指南Win10
- 2021 New Year‘s Resolution
- React Native填坑之旅 -- What's nextReact Native
- 10.4
- What’s your own way of spending two-day weekend?
- What's the maximum typical speed possible with a USB2.0 drive?
- 10.4 程式碼源 2024 CSP-S 模擬賽 Day 9
- String s = “hello“和String s = new String(“hello“)的區別
- 「萌新指南」SOA vs. 微服務:What’s the Difference?微服務
- 真正“搞”懂HTTP協議05之What's HTTP?HTTP協議
- [Original] What's HEAD, FETCH_HEAD and ORIG_HEAD in GitGit
- String s = new String(" a ") 到底產生幾個物件?物件
- Setup MariaDB Master/Slave Replication for Docker MariaDBASTDocker
- 10.4部落格
- What is Babel?Babel
- what is life?
- What is WebpackWeb
- What is wrong?
- What is maven?Maven
- 10.4 - 11.4 改題紀要
- SAP S/4HANA New Simplified Data Model (NSDM) 模型介紹模型
- What is an SQL relation?SQL
- What is rate limiting?MIT
- What is a service mesh?
- WHAT IS PPM Encoder ?
- JAVA面試題 String s = new String("xyz");產生了幾個物件?Java面試題物件
- MariaDB安裝
- Learning MySQL and MariaDBMySql