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.mzph.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 目录里面的文件,不…