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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...