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
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...