🏀事情起因:
大家好,我是【JavaDog程序狗】
今天跟大家聊一下MySQL9.0新版本发布,仅代表个人观点,大佬DBA轻喷
📘『你想听的故事 』
本狗在写上一篇【工具】比Navicat还好用,我咋这么不信呢时
突然想到这么多年java版本都21+了,用了这么多年的MySQL8.x,有没有新版本让我耍耍
于是乎,摸鱼的狗哥就贱呼呼打开了MySQL官网,小手这么一搜,果然MySQL9.0已发布多日,本狗流下了落后的泪水
遂将自己尝鲜的MySQL9.0的使用感受跟大家分享一下,好用与否自行评断
查看任何软件产品,官网一定是第一选择
这是本狗领导说过的一句话,受益匪浅。不管是文档手册也好,还是升级补丁之类,只要我们使用软件,一定要以官网为主!!
下面本狗带着小伙伴一起翻一下官网,掌握阅读官网新特性小技巧
发行说明中会包含版本清单、文档、新功能特性入口,方便查阅
通过MySQL 9.0 中的新增功能跳转对应功能清单
一般包含4个模块
我们来总结一下新增特性
💎新增功能:
MySQL 企业版现在支持用 JavaScript 编写的存储程序
👽人话解释
就是MySQL9.0之前不支持JavaScript写存储程序,现在支持了
CREATE FUNCTION gcd(a INT, b INT)
RETURNS INT
NO SQL
LANGUAGE JAVASCRIPT AS
$mle$
let x = Math.abs(a)
let y = Math.abs(b)
while(y) {
var t = y
y = x % y
x = t
}
return x
$mle$
;
MySQL 9.0 支持VECTOR 列类型。向量是一种数据结构,由条目列表(4 字节浮点值)组成,可以表示为二进制字符串值或列表格式的字符串。列声明的VECTOR最大长度或条目数(在括号中);默认值为 2048,最大值为 16383
👽人话解释
MySQL 9.0加了一个向量VECTOR。一般用在像存储经纬度坐标和高度等,目前应用场景不是太多
mysql> CREATE TABLE v1 (c1 VECTOR(5000));
但VECTOR不能用作下列任何类型的函数和运算符的参数:
MySQL 现在强制执行内联外键规范,该规范以前被解析器接受,但被忽略
👽人话解释
内联外键约束指的是在创建表时直接在列定义中指定外键约束,而不是使用单独的FOREIGN KEY语句
例如:
-- 在这个例子中,FOREIGN KEY紧跟着parent_id列的定义,这就是一个内联外键约束。
CREATE TABLE child (
id INT PRIMARY KEY,
parent_id INT,
FOREIGN KEY (parent_id) REFERENCES parent(id)
);
隐式外键约束通常指的是那些在表结构中存在但未显式声明为外键的列。例如,你有一个child表和一个parent表,child表中的parent_id列引用了parent表的id列,但是没有显式地用FOREIGN KEY语句声明这种关系。
现在支持将 JSON输出 保存EXPLAIN ANALYZE到用户变量中
👽人话解释
EXPLAIN和ANALYZE语句可以用来分析查询计划和执行效率
EXPLAIN ANALYZE FORMAT=JSON SELECT * FROM your_table WHERE your_condition;
总体来说,这些新特性没有特别大的革新,对于本狗来说,可有可无
******
两种方式,一种直接官网下载,另一种直接docker拉取镜像
https://dev.mysql.com/downloads/mysql/
不会在windows上使用docker的小伙伴可以看一下狗哥之前的博客
******
******
🎃 狗哥人话总结: 真心没必要生级!!!大厂紧跟节奏的除外
个人观点:MySQL9.0并没有什么大特性更新,没必要升级,看看热闹就好
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。