1. MySQL 9.0 創(chuàng)新版發(fā)布,大失所望。。

        共 3638字,需瀏覽 8分鐘

         ·

        2024-07-03 14:53

        大家好,我是程序員魚(yú)皮。2024 年 7 月 1 日,MySQL 發(fā)布了 9.0 創(chuàng)新版本。區(qū)別于我們大多數(shù)開(kāi)發(fā)者常用的 LTS(Long-Term Support)長(zhǎng)期支持版本,創(chuàng)新版本的發(fā)布會(huì)更頻繁、會(huì)更快地推出新的特性和變更,可以理解為 “嘗鮮版”,適合追求前沿技術(shù)的同學(xué)體驗(yàn)。

        我通過(guò)閱讀官方文檔,完整了解了本次發(fā)布的新特性,結(jié)果怎么說(shuō)呢,唉,接著往下看吧。。。

        下面魚(yú)皮帶大家 “嘗嘗鮮”,來(lái)看看 MySQL 9.0 創(chuàng)新版本有哪些主要的變化。

        新特性

        1、Event 相關(guān) SQL 語(yǔ)句可以被 Prepared

        在 MySQL 中,事件(Events)是一種可以在預(yù)定時(shí)間執(zhí)行的調(diào)度任務(wù),比如定期清理數(shù)據(jù)之類(lèi)的,就可以使用事件。

        MySQL 9.0 對(duì)事件 SQL 提供了 Prepared 支持,包括:

        • CREATE EVENT
        • ALTER EVENT
        • DROP EVENT

        prepared 準(zhǔn)備語(yǔ)句是一種預(yù)編譯的 SQL 語(yǔ)句模板,可以在執(zhí)行時(shí)動(dòng)態(tài)地傳入?yún)?shù),從而提高查詢的性能和安全性。

        比如下面就是一個(gè)準(zhǔn)備語(yǔ)句,插入的數(shù)據(jù)可以動(dòng)態(tài)傳入:

        PREPARE stmt_insert_employeeFROM 'INSERT INTO employees (name, salary) VALUES (?, ?)';

        2、Performance Schema 新增 2 張表

        MySQL 的 Performance Schema 是一個(gè)用于監(jiān)視 MySQL 服務(wù)器性能的工具。它提供了一組動(dòng)態(tài)視圖和表,記錄了 MySQL 服務(wù)器內(nèi)部的活動(dòng)和資源使用情況,幫助開(kāi)發(fā)者進(jìn)行性能分析、調(diào)優(yōu)和故障排除。

        本次新增的表:

        1. variables_metadata 表:提供關(guān)于系統(tǒng)變量的一般信息。包括 MySQL 服務(wù)器識(shí)別的每個(gè)系統(tǒng)變量的名稱(chēng)、作用域、類(lèi)型、范圍和描述。此表的 MIN_VALUE 和 MAX_VALUE 列旨在取代已棄用的 variables_info 表的 MIN_VALUE 和 MAX_VALUE 列。
        2. global_variable_attributes 表:提供有關(guān)服務(wù)器分配給全局系統(tǒng)變量的屬性-值對(duì)的信息。

        3、SQL 語(yǔ)句優(yōu)化

        現(xiàn)在可以使用以下語(yǔ)法將 EXPLAIN ANALYZE(分析查詢執(zhí)行計(jì)劃和性能的工具)的 JSON 輸出保存到用戶變量中:

        EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt

        隨后,可以將這個(gè)變量作為 MySQL 的任何 JSON 函數(shù)的 JSON 參數(shù)使用。

        4、向量存儲(chǔ)

        AI 的發(fā)展帶火了向量數(shù)據(jù)庫(kù),我們可以利用向量數(shù)據(jù)庫(kù)存儲(chǔ)喂給 AI 的知識(shí)庫(kù)和文檔。

        雖然 MySQL 官方更新日志中并沒(méi)有提到對(duì)于向量數(shù)據(jù)存儲(chǔ)的支持,但是網(wǎng)上有博主在 MySQL 9.0 社區(qū)版中進(jìn)行了測(cè)試,發(fā)現(xiàn)其實(shí)已經(jīng)支持了向量存儲(chǔ),如圖:

        圖片來(lái)源于網(wǎng)絡(luò)

        在此之前,MySQL 推出過(guò)一個(gè)專(zhuān)門(mén)用于分析處理和高性能查詢的數(shù)據(jù)庫(kù)變體 HeatWave,本來(lái)以為只會(huì)在 HeatWave 中支持向量存儲(chǔ),沒(méi)想到社區(qū)版也能使用。如果是真的,那可太好了。

        5、其他

        此外,還優(yōu)化了 Windows 系統(tǒng)上 MySQL 的安裝和使用體驗(yàn)。

        廢棄和移除

        1)在 MySQL 8.0 中,已移除了在 MySQL 8.0 中已廢棄的 mysql_native_password 認(rèn)證插件,并且服務(wù)器現(xiàn)在拒絕來(lái)自沒(méi)有 CLIENT_PLUGIN_AUTH 能力的舊客戶端程序的 mysql_native 認(rèn)證請(qǐng)求。為了向后兼容性,mysql_native_password 仍然在客戶端上可用;客戶端內(nèi)置的認(rèn)證插件已轉(zhuǎn)換為動(dòng)態(tài)加載插件。

        這些更改還涉及移除以下服務(wù)器選項(xiàng)和變量:

        • --mysql-native-password 服務(wù)器選項(xiàng)
        • --mysql-native-password-proxy-users 服務(wù)器選項(xiàng)
        • default_authentication_plugin 服務(wù)器系統(tǒng)變量

        2)Performance Schema 中 variables_info 表的 MIN_VALUE 和 MAX_VALUE 列現(xiàn)在已廢棄,并可能在將來(lái)的 MySQL 版本中移除。開(kāi)發(fā)者應(yīng)該改為使用 variables_metadata 表的 MIN_VALUE 和 MAX_VALUE 列。

        3)ER_SUBQUERY_NO_1_ROW 已從忽略包含 IGNORE 關(guān)鍵字的語(yǔ)句的錯(cuò)誤列表中移除。這樣做的原因如下:

        • 忽略這類(lèi)錯(cuò)誤有時(shí)會(huì)導(dǎo)致將 NULL 插入非空列(對(duì)于未轉(zhuǎn)換的子查詢),或者根本不插入任何行(使用 subquery_to_derived 的子查詢)。
        • 當(dāng)子查詢轉(zhuǎn)換為與派生表聯(lián)接時(shí),行為與未轉(zhuǎn)換查詢不同。

        升級(jí)到 9.0 后,如果包含 SELECT 語(yǔ)句的 UPDATE、DELETE 或 INSERT 語(yǔ)句使用了包含多行結(jié)果的標(biāo)量子查詢,帶有 IGNORE 關(guān)鍵字的語(yǔ)句可能會(huì)引發(fā)錯(cuò)誤。

        總結(jié)

        看了本次 MySQL 9.0 創(chuàng)新版的更新,說(shuō)實(shí)話,大失所望。在這之前,網(wǎng)上有很多關(guān)于 MySQL 9.0 版本新特性的猜測(cè),結(jié)果基本上都沒(méi)有出現(xiàn)。畢竟距離 MySQL 上一次發(fā)布的大版本 8.0 已經(jīng)時(shí)隔 6 年,本來(lái)以為這次 MySQL 會(huì)有一些王炸的新特性,結(jié)果呢,本次除了修復(fù)了 100 多個(gè) Bug 之外,幾乎沒(méi)啥對(duì)開(kāi)發(fā)者有幫助的點(diǎn)。別說(shuō)沒(méi)幫助了,我估計(jì)很多同學(xué)在看這篇文章前都沒(méi)接觸過(guò)這些有變更的特性。

        我們最關(guān)注的,無(wú)非就是使用難度、成本和性能提升對(duì)吧,最好是什么代碼都不用改,直接升級(jí)個(gè)數(shù)據(jù)庫(kù)的版本,性能提升個(gè)幾倍,還能跟老板吹一波牛皮。

        你看看隔壁的 PostgreSQL,這幾年,都已經(jīng)從 11 更新到 17 版本了,AI 時(shí)代人家也早就能通過(guò)插件支持存儲(chǔ)向量數(shù)據(jù)了。MySQL 你這真的是創(chuàng)新么?

        最后,MySQL 9.0 創(chuàng)新版本的下載地址我就不放了,咱還是老老實(shí)實(shí)用 5.7 和 8.0 版本,MySQL 的新版本,還有很長(zhǎng)一條路要走呀!



        ???? 點(diǎn)擊下方閱讀原文,獲取魚(yú)皮往期編程干貨。

        往期推薦

        練習(xí)兩年半,我們的項(xiàng)目更豐富啦!

        B 站崩,小紅書(shū)崩,罪魁禍?zhǔn)拙谷皇恰?。難繃!

        學(xué)弟說(shuō) JVM 是他最熟的技術(shù),被我狠狠吊打!

        面試刷題,用這個(gè)神器就夠了

        我在簡(jiǎn)歷上寫(xiě)了這個(gè),超級(jí)加分~

        將 MySQL 數(shù)據(jù)實(shí)時(shí)同步到 ES,你能想到幾種方案?

        看完這個(gè),我直接把 SQL 刷通了!

        瀏覽 550
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 含羞草2023 | a级情欲片在线观看免费hd | 一边做一边摸 | 国产区在线观看视频 | 免费成人黄色小说软件 |