GreatSQL 8.0.32-24 今日發佈

来源:https://www.cnblogs.com/greatsql/archive/2023/06/05/17456974.html
-Advertisement-
Play Games

- 1.新增特性 - - 1.1 SQL相容性 - 1.2 MGR - 1.3 性能優化 - 1.4 安全 - 2.穩定性提升 - 3.其他調整 - 4.bug修複 - 5.GreatSQL VS MySQL - 6.GreatSQL Release Notes > GreatSQL 8.0.32- ...


  • 1.新增特性

    • 1.1 SQL相容性
    • 1.2 MGR
    • 1.3 性能優化
    • 1.4 安全
  • 2.穩定性提升

  • 3.其他調整

  • 4.bug修複

  • 5.GreatSQL VS MySQL

  • 6.GreatSQL Release Notes


GreatSQL 8.0.32-24版本發佈,增加並行load data、(邏輯 & CLONE)備份加密、MGR讀寫節點可綁定動態VIP、Oracle相容擴展、審計日誌增強等重磅特性。

直播預告:GreatSQL 8.0.32-24發佈會

直播時間:2023.06.05 15:00 - 16:00

掃碼預約發佈會或點擊下方閱讀原文進行報名

image-20230605090721995

0.項目信息

1.新增特性

1.1 SQL相容性

在GreatSQL 8.0.32-24中,實現了多項SQL相容性功能,包括數據類型擴展、SQL語法等超過20個相容特性。

1.1.1 數據類型擴展

  • CLOB
  • VARCHAR2

1.1.2 SQL語法

  • DATETIME 運算
  • ROWNUM
  • 子查詢無別名
  • EXPLAIN PLAN FOR

1.1.3 函數

  • ADD_MONTHS()
  • CAST()
  • DECODE()
  • INSTR()
  • LENGTH()
  • LENGTHB()
  • MONTHS_BETWEEN()
  • NVL()
  • SUBSTRB()
  • SYSDATE()
  • TO_CHAR()
  • TO_DATE()
  • TO_NUMBER()
  • TO_TIMESTAMP()
  • TRANSLATE()
  • TRUNC()
  • SYS_GUID()

更多信息詳見文檔:GreatSQL中的SQL相容性https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/greatsql-803224/sql-compat.md)

1.2 MGR

1.2.1 MGR內置動態VIP

在GreatSQL 8.0.32-24中,新增MGR讀寫節點支持綁定VIP(虛擬IP)特性。利用該特性,使得MGR在單主模式下運行時,能自動識別讀寫節點並綁定VIP,支持應用端即可通過VIP對資料庫發起讀寫請求,當讀寫節點角色發生變化時,VIP也會隨之自動漂移並重新綁定,應用端無需修改VIP配置。

更多信息詳見文檔:GreatSQL中MGR支持內置vip特性https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/greatsql-803224/mgr-vip.md)

1.2.2 新增applier queue批處理機制

新增相應選項 group_replication_applier_batch_size_threshold。當MGR中的併發事務太大,或者個別Secondary節點(磁碟I/O)性能較差時,可能會導致applier queue堆積越來越大,一直無法及時跟上Primary節點。

這時候有效的辦法就是讓applier queue落地時採用批量的方式,提高落盤效率。預設地,applier queue里的event是逐個落盤的,這種方式效率很低。當applier queue超過 group_replication_applier_batch_size_threshold 設定的閾值時,就會觸發批量落盤模式,每100個event批量落盤,就能大大提高落盤效率。

在生產環境中,選項 group_replication_applier_batch_size_threshold 值不要設置太小,建議不低於10000。預設值 100000,最小值10(僅用於開發、測試環境),最大值100000000(基本上等於禁用)。一個大事務會包含很多個event,當該選項設置太低時,可能會導致一個事務中的event沒辦法及時落盤,會造成relay log不完整,節點crash時,就需要從Primary節點重新讀取binlog進行恢復。

System Variable Name group_replication_applier_batch_size_threshold
Variable Scope Global
Dynamic Variable YES
Permitted Values [10 ~ 100000000]
Default 100000
Description 當applier queue超過 group_replication_applier_batch_size_threshold 設定的閾值時,就會觸發批量落盤模式,每100個event批量落盤,提高落盤效率。

1.2.3 Xcom cache分配靜態化

在MySQL 5.7里,Xcom cache size最大值1G,且不可動態調整。從MySQL 8.0開始,可對其動態調整。在 <= MySQL 8.0.20的版本中,最小值1G。在>= MySQL 8.0.21的版本中,最小值128M。

在MySQL中,是動態按需分配Xcom cache的,如果太多有空閑,就釋放;如果不夠用,再動態分配更多記憶體,一次分配大概250000個cache item,很容易造成約150ms的響應延遲。也就是說,會隨著事務多少的變化而可能頻繁產生響應延遲。

在GreatSQL中,對Xcom cache採用了靜態化分配機制,即一開始就預分配約1GB記憶體用於Xcom cache,這可以避免前面提到的響應延遲抖動風險,不過“副作用”是mysqld進程所占用的記憶體會比原來多,在記憶體特別緊張的伺服器上不太適合。

新增相應選項 group_replication_xcom_cache_mode 用於設置Xcom cache靜態化初始大小:

System Variable Name group_replication_xcom_cache_mode
Variable Scope Global
Dynamic Variable YES
Permitted Values [0 ~ 4]
Default 2
Description 設置Xcom cache靜態化初始大小,對應關係如下: 0:約能緩存50萬個Xcom條目,相應記憶體消耗約200MB; 1:約能緩存100萬個Xcom條目,相應記憶體消耗約500MB; 2:約能緩存200萬個Xcom條目,相應記憶體消耗約1GB; 3:約能緩存400萬個Xcom條目,相應記憶體消耗約2GB; 4:約能緩存800萬個Xcom條目,相應記憶體消耗約4GB;

1.2.4 其他優化

  • 優化了孟子演算法,使得無論是單主模式還是多主模式下,均有不同程度的性能提升。
  • 消除了殺節點進程場景下的性能抖動。
  • 優化了加入節點時可能導致性能劇烈抖動的問題。
  • 優化手工選主機制,解決了長事務造成無法選主的問題。
  • 完善MGR中的外鍵約束機制,降低或避免從節點報錯退出MGR的風險。
  • 提升了Secondary節點上大事務併發應用回放的速度。
  • 增加Xcom cache條目,提升了在網路延遲較大或事務應用較慢場景下的性能。
  • 新增參數選項:group_replication_broadcast_gtid_executed_period 用於設置節點之間各自廣播節點的gtid值的頻率,單位為毫秒,預設為1000,最小200,最大60 000,配合新的事務認證隊列清理演算法,進行認證資料庫的清理操作。收到所有節點的gtid後,就可以清理都執行完畢的gtid的認證信息了。
  • 新增參數選項:group_replication_flow_control_max_wait_time,用於設置每次觸發流控時,流控等待的最大時長,預設為3600s,最大為86400s(1天)。

1.3 性能優化

1.3.1 並行load data

MySQL原生的load data採用單線程讀取本地文件(或收取client傳來的網路數據包),逐行獲取內容後再插入數據。

當導入的單個文件很大時,單線程處理模式無法充分利用資料庫的資源,導致執行時間很長。又由於load data導入的數據在一個事務內,當binlog事務超過2G時,可能會導致無法使用binlog在MGR集群間同步。

為解決上述兩個問題,GreatSQL支持了load data並行導入。開啟並行導入後,會自動切分文件成小塊(可配置),然後啟動多個worker線程(數量可配置)導入文件塊。並行導入與engine無關,理論上支持任何存儲引擎。

更多信息詳見文檔:GreatSQL中的並行load data特性https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/greatsql-803224/parallel_load_data.md)

1.3.2 優化器優化

優化了執行計劃,使得benchmark tpcc測試吞吐量更高,也更加穩定。

1.4 安全

1.4.1 mysqldump備份加密

GreatSQL 8.0.32-24支持在mysqldump進行邏輯備份時產生加密備份文件,並且也支持對加密後的備份文件解密導入。

更多信息詳見文檔:GreatSQL中的邏輯備份加密特性https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/greatsql-803224/mysqldump-encrypt.md)

1.4.2 審計日誌入表

GreatSQL支持將審計日誌寫入數據表中,並且設置審計日誌入表規則,以便達到不同的審計需求。

審計內容將包括操作賬戶、客戶端ip、被操作的資料庫對象、操作的完整語句、操作結果。

更多信息詳見文檔:GreatSQL中的審計日誌入表特性https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/greatsql-803224/audit-log-in-table.md)

1.4.3 表空間國密加密

在開源MySQL原有keyring架構,通過國密演算法,增強開源MySQL keyring架構的安全性。MySQL的表空間加密keyring架構包含2層加密,master key 和 tablespace key。

  • master key用於加密tablespace key,加密後的結果存儲在tablespace的header中。
  • tablespace key用於加密數據

當用戶想訪問加密的表時,InnoDB會先用master key對之前存儲在header中的加密信息進行解密,得到tablespace key。再用tablespace key解密數據信息。tablespace key是不會被改變的,而master key可以隨時改變。開源MySQL的master key採用keyring_file插件,key file直接存儲在磁碟上。

本功能點通過基於國密演算法sm4,增加了資料庫的安全性。

創建國密演算法加密表

CREATE TABLE test.t1(c1 INT, c2 INT) ENGINE = InnoDB ENCRYPTION = 'Y';

更多信息詳見文檔:GreatSQL中的表空間加密國密支持https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/greatsql-803224/innodb-tablespace-encrypt.md)

1.4.4 CLONE備份加密

GreatSQL支持在利用CLONE備份時同步進行加密操作,提升備份文件安全性,避免備份文件被盜或泄漏時造成損失。

更多信息詳見文檔:CLONE備份加密https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/greatsql-803224/clone-encrypt.md)

2.穩定性提升

3.其他調整

4.bug修複

  • 修複InnoDB並行查詢可能導致查詢hang住,甚至crash的問題。

5. GreatSQL VS MySQL

特性 GreatSQL 8.0.32-24 MySQL 8.0.32
開源
ACID完整性
MVCC特性
支持行鎖
Crash自動修複
表分區(Partitioning)
視圖(Views)
子查詢(Subqueries)
觸發器(Triggers)
存儲過程(Stored Procedures)
外鍵(Foreign Keys)
視窗函數(Window Functions)
通用表表達式CTE
地理信息(GIS)
基於GTID的複製
組複製(MGR)
MyRocks引擎
SQL相容擴展 1.數據類型擴展 2.SQL語法擴展 共超過20個擴展新特性
MGR提升 1.地理標簽 2.仲裁節點 3.讀寫節點綁定VIP 4.快速單主模式 5.智能選主機制 6.全新流控演算法
性能提升 1.InnoDB並行查詢 2.並行load data
安全提升 1.國密支持 2.備份加密 3.審計日誌入庫

此外,GreatSQL 8.0.32-24基於Percona Server for MySQL 8.0.32-24版本,它在MySQL 8.0.32基礎上做了大量的改進和提升以及眾多新特性,詳情請見:Percona Server for MySQL feature comparisonhttps://docs.percona.com/percona-server/8.0/feature_comparison.html#percona-server-for-mysql-feature-comparison),這其中包括線程池、審計、數據脫敏等MySQL企業版才有的特性,以及PFS提升、IFS提升、性能和可擴展性提升、用戶統計增強、processlist增強、slow log增強等大量改進和提升,這裡不一一重覆列出。

6. GreatSQL Release Notes


Enjoy GreatSQL

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ## 前置知識 動態捲管理(LVM,Logical Volume Manger)實現將多個硬碟和硬碟分區做成一個邏輯捲,並將邏輯捲統一管理。創建LVM順序為:物理捲PV->捲組VG->邏輯捲LV。 物理捲(PV,Physical Volume):物理硬碟或分區; 捲組(VG,Volume Group ...
  • 不同ubuntu版本對應的ros版本名稱 ubuntu版本 ros1版本 ros2版本 16.04 kinetic ardent 18.04 melodic dashing 20.04 noetic foxy 1、打開軟體與更新,切換ubuntu軟體源(國內阿裡雲) 2、打開終端,添加ros軟體源( ...
  • # 資料庫系統概論— 設計與應用開發篇(1) ## 一.關係數據理論 主要是關係中**屬性和屬性之間的依賴關係** ### 1相關基本概念 - **第一範式**:表中無表(屬性不可再分) - 數據依賴:是在一個關係內部屬性間的約束,分為函數和多值依賴。 eg:學號決定姓名 ### 2.規範化 ### ...
  • 這是一個與兒童相關的百科知識資料庫,資料庫中包含了小孩子比較有興趣的動物植物、軍事知識、科學知識、天文地理等分類信息,是一個兒童教育必須掌握的知識。載圖下麵有更加詳細的分類統計信息: 詳細的分類情況如下: 動物植物包含:動物常識(256條)、海洋生物(69條)、人體奧秘(155條)、生物工程(114 ...
  • 之前發過一個《看圖猜電視劇電影含圖ACCESS資料庫》,今天又獲得了一個更完美的數據,不論在記錄數上還是在數據內容上都之前那麼更漂亮。更多看圖猜的數據可以訪問“看圖猜詞”分類; 不但包含電影名稱,還包含電影年份、主演、導演等 圖片的尺寸一般是:576X352,平均大小為26KB左右 截圖下方有顯示“ ...
  • 1. 安裝簡介 2. 高可用搭建 3. 高可用及負載均衡測試 4. 問題處理 # 一、安裝簡介 ## 1.1 安裝目的 MySQL官方提供了InnoDB Cluster,該集群由MySQL MGR和MySQL Router組成。MySQL MGR在資料庫層面實現自主高可用性,而MySQL Route ...
  • 今天這個資料庫是女生專項心理測試資料庫,資料庫包含4個表:Subject(測試項目表)、Question(項目下測試題目)、Answer(題目下選項及得分)、Explain(項目累計得分解析表),具體看以下截圖: 包含:你是一個樂觀的女生嗎?你是一個自信的女生嗎?你是一個可愛的女生嗎?你是一個意志堅 ...
  • 往期回顧 - [圖文結合帶你搞定MySQL日誌之Undo log(回滾日誌)](http://mp.weixin.qq.com/s?__biz=MzkzMTIzMDgwMg==&mid=2247496981&idx=1&sn=ec496da6e52e19ee505483a15fb54f6b&chks ...
一周排行
    -Advertisement-
    Play Games
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...