MySQL 9.0正式版本來了!

MySQL 9.0 第一個正式版本于 2024 年 7 月 1 日發布,這是一個創新版,意味著它會增加一些新功能、修復一些問題并棄用一些舊功能。

性能相關

MySQL 9.0 支持將 EXPLAIN ANALYZE 命令輸出的 JSON 數據存儲到用戶定義的變量中,語法如下:

EXPLAIN ANALYZE FORMAT=JSON 
INTO @variable 
select_stmt;

只有顯式指定了 FORMAT=JSON 時才可以使用 INTO 子句,同時系統變量 explain_json_format_version 必須設置為 2(默認值為 1)時才支持該功能。

MySQL 9.0 還為 performance_schema 數據庫增加了兩個系統表:

  • variables_metadata 提供了關于系統變量的通用信息,包括名稱、作用范圍、類型、取值范圍(可選)以及描述。另外,MIN_VALUE 和 MAX_VALUE 字段用于替換 variables_info 表中的對應字段,后者中的這兩個字段將來會被刪除。
  • global_variable_attributes 提供了全局變量設置的屬性和值。

預編譯語句

MySQL 9.0 擴展了預編譯語句的功能,增加了對事件 DDL 命令的支持,包括 CREATE EVENT、ALTER EVENT 以及 DROP EVENT。例如:

delimiter |CREATE PROCEDURE sp(n INT)
BEGINSET @s1 = "CREATE EVENT e ON SCHEDULE EVERY ";SET @s2 = " SECONDSTARTS CURRENT_TIMESTAMP + INTERVAL 10 SECONDENDS CURRENT_TIMESTAMP + INTERVAL 2 MINUTEON COMPLETION PRESERVEDOINSERT INTO d.t VALUES ROW(NULL, NOW(), FLOOR(RAND()*100))";SET @s = CONCAT(@s1, n, @s2);PREPARE ps FROM @s;EXECUTE ps;DEALLOCATE PREPARE ps;
END |delimiter ;

需要注意的是,事件 DDL 預編譯語句不支持位置參數(?占位符),用戶需要通過字符串常量、系統變量以及用戶變量拼接成動態文本。

向量數據

MySQL 9.0 的一個隱藏大招就是增加了向量(vector)數據類型的支持,例如:

CREATE TABLE t(id int, rgb vector(3));INSERT INTO t VALUES (1, to_vector('[255,255,255]'));SELECT id, from_vector(rgb) FROM t;
id|from_vector(rgb)                     |
--+-------------------------------------+1|[2.55000e+02,2.55000e+02,2.55000e+02]|

to_vector 函數可以將字符串轉化為向量數據,from_vector 函數可以將向量數據轉換為字符串。

目前,這個功能在 MySQL 官方文檔中沒有任何描述,而且只有 vector 數據類型和簡單的函數功能,期待后期版本增加更實用的向量數據庫功能,例如向量搜索和索引。

MySQL HeatWave 云數據庫服務已經提供了向量存儲和生成式 AI 功能。

認證安全

MySQL 9.0 刪除了 mysql_native_password 認證插件功能,該功能在 MySQL 8.0 中已經被棄用。新版本不再接受舊版本客戶端程序的 mysql_native 認證請求,這樣做是為了增加安全性。

該變更同時導致以下服務器選項和變量被刪除:

  • --mysql-native-password 服務器選項;
  • --mysql-native-password-proxy-users 服務器選項;
  • default_authentication_plugin 服務器系統變量。

為了兼容早期版本,MySQL 9.0 客戶端仍然保留了 mysql_native_password,因此它可以連接低版本的 MySQL 服務器。不過,MySQL 9.0 客戶端需要在運行時加載 mysql_native_password。

JavaScript存儲程序

MySQL 9.0 企業版增加了 JavaScript 存儲程序,例如:

CREATE FUNCTION add_nos(arg1 INT, arg2 INT) 
RETURNS INT LANGUAGE JAVASCRIPT AS 
$$
return arg1 + arg2
$$
;SELECT add_nos(12,52);
+----------------+
| add_nos(12,52) |
+----------------+
|             64 |
+----------------+

JavaScript 存儲程序需要安裝多語言引擎組件,只有 MySQL 企業版支持這個組件。

其他功能

MySQL 9.0.0 同時修復了 127 個漏洞,具體內容可以參考官方文檔。

MySQL 9.0 還發布了最新版本的 MySQL Shell、MySQL Router、MySQL Connectors 以及客戶端工具。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38712.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38712.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38712.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【硬件模塊】PN532 NFC讀卡串口通信

PN532 PN532是一款功能豐富的非接觸式通訊收發模塊,其基于8051單片機核心,集成了多種通信接口和工作模式,以滿足不同應用場景的需求。以下是PN532功能相關的詳細介紹: 多種通信接口:PN532支持I2C、SPI和UART&#xff0…

MySQL的安裝和環境配置

1.下載MySQL安裝MySQL 選Custom選項為高級自定義模式 2.配置MySQL環境 安裝好之后,在桌面右鍵點擊我的電腦(有些是此電腦),然后點擊屬性,進入系統信息設置,接著點擊高級,進入環境變量界面,進入環境變量界面…

【Spring Boot】Java 持久層 API:JPA

Java 持久層 API:JPA 1.Spring Data1.1 主要模塊1.2 社區模塊 2.JPA3.使用 JPA3.1 添加 JPA 和 MySQL 數據庫的依賴3.2 配置數據庫連接信息 4.了解 JPA 注解和屬性4.1 常用注解4.2 映射關系的注解4.3 映射關系的屬性 5.用 JPA 構建實體數據表 1.Spring Data Spring…

Redis基礎教程(十):HyperLogLog

💝💝💝首先,歡迎各位來到我的博客,很高興能夠在這里和您見面!希望您在這里不僅可以有所收獲,同時也能感受到一份輕松歡樂的氛圍,祝你生活愉快! 💝&#x1f49…

Linux愛好者能對Linux癡迷到什么程度?

在開始前剛好我有一些資料,是我根據網友給的問題精心整理了一份「Linux的資料從專業入門到高級教程」, 點個關注在評論區回復“888”之后私信回復“888”,全部無償共享給大家!!!曾經想幫助全世界的人卸載掉…

歸并排序——有序序列的合并

目錄 1、簡述 2、復雜度 3、穩定性 4、例子 1、簡述 有序序列的合并(Merge of Sorted Sequences)是歸并排序的核心步驟之一。其目的是將兩個已經排序的序列合并成一個新的有序序列。這個過程在歸并排序中非常重要,因為歸并排序通過遞歸地…

技術職務管理助力智慧校園建設:深入解讀人事系統

智慧校園人事系統中的技術職務管理模塊,專注于高校及教育機構內技術人員及科研人員的職務管理,涵蓋職稱評審、技術職務任命、項目參與記錄、科研成果跟蹤及技術能力評估等多個方面,旨在通過信息化手段提升技術人才管理的效率與科學性。 在這一…

Windows如何安裝并啟動Nginx

0、前言 Nginx 是一款高性能、輕量級的Web服務器和反向代理服務器,廣泛應用于互聯網領域。它以其高效穩定、內存占用少和豐富的模塊化設計而受到開發者們的青睞。 在實際使用過程中,我們多數時候會在Linux系統上運行Nginx,但實際上&#xff…

單目行車測距攝像系統(單目測距-行車)

單目行車測距攝像系統是一種利用單個攝像頭實現車輛行駛中前方障礙物距離測量的技術。該系統通過計算機視覺算法,能夠實時分析攝像頭捕捉的圖像,精確計算出車輛與前方物體之間的距離,對于自動駕駛、高級駕駛輔助系統(ADAS&#xf…

PMP考試沒通過別擔心,補救辦法來了

2024年6月PMP考試成績正在陸續分批次發布。沒有考試通過的同學就會疑問,考試沒考過怎么辦?可不可以補考?面對PMP考試沒通過的情況,我們應該如何應對呢? 首先要告訴大家一個好消息!6月考試不通過的考生可以…

24年hvv不要掉進秘網了,特別別被反制了

這兩年的hvv,防守方已經不單單是每天坐那看監控、封ip了,越來越多的大佬投身防守工作中,讓防守從被動變成了一個主動的活了。 目前最常見的主動防守有2種,1、長時間的蜜罐運營。2、蜜罐反制。 01-蜜罐運營 蜜罐這個詞干安全的都…

七、函數練習

目錄 1. 寫一個函數可以判斷一個數是不是素數。(素數只能被1或其本身整除的數) 2. 一個函數判斷一年是不是閏年。 3.寫一個函數,實現一個整形有序數組的二分查找。 4. 寫一個函數,每調用一次這個函數,使得num每次增…

基于PHP花澗訂購系統的設計與實現00332

摘 要 近年來,電子商務的快速發展引起了行業和學術界的高度關注。花澗訂購系統旨在為用戶提供一個簡單、高效、便捷的花卉購物體驗,它不僅要求用戶清晰地查看所需信息,而且還要求界面設計精美,使得功能與頁面完美融合,…

PIL,OpenCV,Pytorch處理圖像時的通道順序(顏色,長寬深)

項目顏色通道順序長寬通道順序數據類型取值范圍PILRGBHWCndarray0-255 (byte)OpenCVBGRHWCndarray0-255 (byte)PyTorchRGB/BGR (取決于如何讀取)(N)CHWtensor0-1 (float, 標準化后); 0-255 (int, 未標準化) 注意以下幾點: 顏色通道順序:PIL默認使用RGB順…

圖像增強方法匯總OpenCV+python實現【第二部分:高級圖像增強方法】

圖像增強方法匯總OpenCV+python實現【第二部分:高級圖像增強方法】 前言高級圖像增強方法1. 隨機高斯模糊(Random Gaussian Blur)2. 隨機灰度(Random Grayscale)3. 隨機通道交換(Random Channel Swap)4. 隨機伽馬校正(Random Gamma Correction)5. 隨機透視變換(Rando…

監控易在某市電子政務外網的運維應用案例

隨著信息技術的飛速發展,電子政務已經成為政府提升服務效率、增強公眾滿意度的重要途徑。某市電子政務外網作為該市政府部門與外界交互的主要平臺,承載著大量關鍵業務與數據交互,其網絡環境的復雜性、應用特點的多樣性以及運維需求的挑戰性&a…

AI程序員還是代替不了程序員,震撼硅谷的Devin-ai程序員,再度震撼硅谷——但這次是被打假

文章目錄 主要疑點包括但不限于:35年從業者逐幀驗證 AI程序員還是代替不了程序員,震撼硅谷的Devin-ai程序員,再度震撼硅谷——但這次是被打假 一位油管程序員博主Internet of Bugs對Devin發布的視頻進行了逐幀分析,逐一舉證說明了…

【C語言】register 關鍵字

在C語言中,register關鍵字用于提示編譯器將變量盡量存儲在CPU的寄存器中,而不是在內存中。這是為了提高訪問速度,因為寄存器的訪問速度比內存快得多。使用register關鍵字的變量通常是頻繁使用的局部變量。 基本用法 void example() {regist…

貓頭虎分享[可靈AI」官方推薦的馴服指南-V1.0

貓頭虎分享[可靈AI」官方推薦的馴服指南-V1.0 貓頭虎是誰? 大家好,我是 貓頭虎,別名貓頭虎博主,擅長的技術領域包括云原生、前端、后端、運維和AI。我的博客主要分享技術教程、bug解決思路、開發工具教程、前沿科技資訊、產品評…

Git 基礎-創建版本庫 git init、添加到暫存區git add、查看狀態git status、查看改動git diff

目錄 1.創建版本庫 git init 1.創建版本庫 git init 在目錄中創建新的 Git 倉庫。 你可以在任何時候、任何目錄中這么做,完全是本地化的。 在目錄中執行 git init,就可以創建一個 Git 倉庫了。 注意: 沒事不要手動修改 .git 目錄里面的文件,不…