当前位置: 首页 > news >正文

没想到MySQL 9.0这么拉胯

MySQL 7月1号发布了9.0版本,然而没想到并没有引起大家的狂欢,反而是来自DBA圈子的一篇吐槽,尤其是PG界吐槽更厉害。

难道MySQL现在真的这么拉胯了?本着好奇的态度,我也去下载了MySQL9.0的手册看了一下。确实有点让我大跌眼镜,难怪大家都认为这几年MySQL 官方team 是不是都在摸鱼?

MySQL 9.0不推荐使用

首先我们先不说这个版功能如何,性能如何,单纯的就看这个版本的生命周期就知道,太短了。真的不太适合上生产。当然,如果你觉得升级能够很随意的进行,那么请随意。

alt

我们可以看到很多版本实际上都是创新版本,并非LTS版本,因此其支持周期是非常短暂的。

这类似openGauss6.0 RC-1版本,实际上周期就半年。

MySQL 9.0 新增Javscript能力(MogDB能支持吗?)

我们知道对于javascript的处理,通常是利用json相关函数来处理,因此MySQL 8.x和9 引入了不少的json函数。

实际上我测试,很多json函数MogDB 5.0都支持了,其中一些函数名称有些差异。

当然,如果在openGauss或者MogDB上直接用过函数或者包去存javascript 执行代码,目前是暂时不支持的。

[omm2@mogdb1 ~]$ gsql -r -d test -U roger
Password for user roger: 
gsql ((MogDB 5.0.7 build c4707384) compiled at 2024-05-24 10:51:53 commit 0 last mr 1804 )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

test=> 
test=> select json_object('{a,1,b,2,3,NULL,"d e f","a b c"}');
                      json_object                      
-------------------------------------------------------
 {"a" : "1""b" : "2""3" : null, "d e f" : "a b c"}
(1 row)

test=> 
test=> CREATE TABLE t1 (c1 JSON);
CREATE TABLE
test=> INSERT INTO t1 VALUES
test-> ('{"x": 17, "x": "red"}'),
test-> ('{"x": 17, "x": "red", "x": [3, 5, 7]}');
INSERT 0 2
test=> select * from t1;
                  c1                   
---------------------------------------
 {"x": 17, "x""red"}
 {"x": 17, "x""red""x": [3, 5, 7]}
(2 rows)

test=> 

比如其中提到的json_extract函数,在MogDB中的名称不太一样。实际上extract相关函数有好几个,例如:

test=> select json_extract_path('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}''f4','f6');
 json_extract_path 
-------------------
 "stringy"
(1 row)

test=> select json_extract_path_text('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}''f4','f6');
 json_extract_path_text 
------------------------
 stringy
(1 row)

test=> select json_extract_path_text_op('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}''{f4,f6}');
 json_extract_path_text_op 
---------------------------
 stringy
(1 row)

test=> 

如果大家想了解json、jsonb相关的函数,可以直接看MogDB的官方文档就好了。https://docs.mogdb.io/zh/mogdb/v5.0/json-functions

MySQL9.0引入向量vector(MogDB 5.0能支持吗?)

要说MySQL 9.0的另外一项相对拿的出的功能,那一定是向量了,毕竟这几年向量比较火。

目前MogDB 5.x版本暂时还不支持,但是openGauss 6.0 已经支持了,因此MogDB6.0(预计2025年3月30号发布)也会支持这个特性。

openGauss=# CREATE Extension datavec;
openGauss=# CREATE TABLE items (val vector(3));

openGauss=# INSERT INTO items (val) VALUES ('[1,2,3]'), ('[4,5,6]');

openGauss=# CREATE INDEX ON items USING ivfflat (val vector_l2_ops) WITH (lists = 100);
openGauss=# CREATE INDEX ON items USING ivfflat (val vector_ip_ops) WITH (lists = 100);
openGauss=# CREATE INDEX ON items USING ivfflat (val vector_cosine_ops) WITH (lists = 100);

另外包括一些其他小的功能性增强,比如MySQL 9.0 引入的event功能,比如create/alter/drop event DDL用法。

实际上这个功能,OpenGauss6.0也已经支持了,因此在后面即将发布的MogDB6.0 也应该会支持这个功能。

--创建一个定时任务
openGauss=# CREATE TABLE t_ev(num int);

openGauss=# CREATE EVENT IF NOT EXISTS event_e1 ON SCHEDULE AT sysdate() + interval 5 second + interval 33 minute DISABLE DO insert into t_ev values(0);

--修改定时任务
--修改定时任务状态和待执行语句
openGauss=# ALTER EVENT event_e1 ENABLE DO select 1;

--修改定时任务名
openGauss=# ALTER EVENT event_e1 RENAME TO event_ee;

就简单分享这几点吧。

本文由 mdnice 多平台发布

http://www.lryc.cn/news/398649.html

相关文章:

  • 开源 Wiki 系统 InfoSphere 2024.01.1 发布
  • 1.Introduction to Spring Web MVC framework
  • Onnx 1-深度学习-概述1
  • 网络基础——udp协议
  • 分布式锁理解
  • Android Gradle 开发与应用 (十): Gradle 脚本最佳实践
  • c#获取本机的MAC地址(附源码)
  • sqlmap使用之-post注入、head注入(ua、cookie、referer)
  • XSS: 原理 反射型实例[入门]
  • Idea新增Module报错:sdk ‘1.8‘ type ‘JavaSDK‘ is not registered in ProjectJdkTable
  • 基于RHCE基础搭建简单服务
  • 威纶通触摸屏软件离线仿真时出现报错8000端口占用或服务器断线
  • CAS详解
  • 【笔记】虚拟机中的主从数据库连接实体数据库成功后的从数据库不同步问题解决方法2
  • 【每日一练】python类和对象现实举例详细讲解
  • 【学习css1】flex布局-页面footer部分保持在网页底部
  • Java中创建线程的几种方式
  • [A-04] ARMv8/ARMv9-Cache的相关策略
  • 【笔试常见编程题06】最近公共祖先、求最大连续bit数、二进制插入、查找组成一个偶数最接近的两个素数
  • 【工具分享】Gophish——网络钓鱼框架
  • “职业三大底层逻辑“是啥呢?
  • 飞睿智能无线高速uwb安全数据传输模块,低功耗、抗干扰超宽带uwb芯片传输速度技术新突破
  • 手把手教你从微信中取出聊天表情图片,以动态表情保存为gif为例
  • 【深度学习】图形模型基础(5):线性回归模型第三部分:线性回归模型拟合
  • 【Git 入门】初始化配置与新建仓库
  • C语言 求两个整数的最大公约数和最小公倍数
  • Linux arm64平台指令替换函数 aarch64_insn_patch_text_nosync
  • 谷歌浏览器插件开发笔记0.1.033
  • ETag:Springboot接口如何添加Tag
  • JavaSe系列二十七: Java正则表达式