【MySQL】MySQL 9.0悄悄的来了

news/2024/7/8 11:01:26 标签: mysql, 数据库

MySQL 9.0.0 中的变化

MySQL 9.0 中的新功能
JavaScript 存储程序

MySQL  企业版现在支持用 JavaScript 编写的存储程序,例如使用 CREATE FUNCTION下面显示的语句和 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$
;
VECTOR 类型支持

MySQL  9.0 支持VECTOR 列类型。向量是一种数据结构,由条目列表(4 字节浮点值)组成,可以表示为二进制字符串值或列表格式的字符串。列声明的VECTOR最大长度或条目数(在括号中);默认值为 2048,最大值为 16383。

可以使用如下所示的 列创建InnoDB表:VECTORCREATE TABLE

mysql> CREATE TABLE v1 (c1 VECTOR(5000));
Query OK, 0 rows affected (0.03 sec)

向量列受到限制:

  • 列VECTOR不能用作任何类型的键。这包括主键、外键、唯一键和分区键。
  • 某些类型的 MySQL 函数和运算符不接受向量作为参数。这些包括但不限于数字函数和运算符、时间函数、全文搜索函数、XML 函数、位函数和 JSON 函数。Vector 可以与部分(但不是全部)字符串和加密函数一起使用。有关这些函数的更多完整信息,请参阅 VECTOR 支持和不支持的函数。
  • AVECTOR不能与任何其他类型进行比较,并且只能与另一个类型进行比较 VECTOR以确定相等性。
保存 EXPLAIN ANALYZE INTO 的 JSON 输出

现在支持将 JSON输出 保存EXPLAIN ANALYZE到用户变量中,使用此处显示的语法:

EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt

有关更多信息和示例, 请参阅MySQL :: MySQL 9.0 Reference Manual :: 15.8.2 EXPLAIN Statement

MySQL 9.0 支持附加 INTO选项EXPLAIN FORMAT=JSON,可以将 JSON 格式的输出保存到用户变量中,如下所示:

mysql> EXPLAIN FORMAT=JSON INTO @myselect 
    ->     SELECT name FROM a WHERE id = 2;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @myselect\G
*************************** 1. row ***************************
@myex: {
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "1.00"
    },
    "table": {
      "table_name": "a",
      "access_type": "const",
      "possible_keys": [
        "PRIMARY"
      ],
      "key": "PRIMARY",
      "used_key_parts": [
        "id"
      ],
      "key_length": "4",
      "ref": [
        "const"
      ],
      "rows_examined_per_scan": 1,
      "rows_produced_per_join": 1,
      "filtered": "100.00",
      "cost_info": {
        "read_cost": "0.00",
        "eval_cost": "0.10",
        "prefix_cost": "0.00",
        "data_read_per_join": "408"
      },
      "used_columns": [
        "id",
        "name"
      ]
    }
  }
}
1 row in set (0.00 sec)
DDL 语句新增 Event 

从 MySQL 9.0.0 开始,可以使用以下 Event 语法:

  • CREATE EVENT(创建事件)

  • ALTER EVENT(修改事件)

  • DROP EVENT(删除事件)

EVENT 语句不支持使用占位符参数(?)。我们必须根据字符串文字、系统变量和用户变量的某种组合来组装要准备的语句文本。

请参阅 :MySQL :: MySQL 9.0 Reference Manual :: 15.5 Prepared Statements

EVENT 语句语法如下:

CREATE
    [DEFINER = user]
    EVENT
    [IF NOT EXISTS]
    event_name
    ON SCHEDULE schedule
    [ON COMPLETION [NOT] PRESERVE]
    [ENABLE | DISABLE | DISABLE ON {REPLICA | SLAVE}]
    [COMMENT 'string']
    DO event_body;

schedule: {
    AT timestamp [+ INTERVAL interval] ...
  | EVERY interval
    [STARTS timestamp [+ INTERVAL interval] ...]
    [ENDS timestamp [+ INTERVAL interval] ...]
}

interval:
    quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
              WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
              DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
性能模式系统变量表

MySQL  9.0 向性能模式添加了两个新表,提供有关服务器系统变量的信息。这些表列在此处:

  • 该variables_metadata 表提供了有关系统变量的一般信息。此信息包括 MySQL 服务器识别的每个系统变量的名称、作用域、类型、范围(如适用)和描述。
  • 该表中的两列(MIN_VALUE和 MAX_VALUE)旨在替换 variables_info表中已弃用的列。
  • 该 global_variable_attributes 表提供有关服务器分配给全局系统变量的属性值对的信息。

有关更多信息,请参见:MySQL :: MySQL 9.0 Reference Manual :: 29.12.14 Performance Schema System Variable Tables

MySQL 9.0 中弃用的功能
性能架构变量信息表列

 性能架构表的MIN_VALUE和 列现已弃用,并可能在将来的 MySQL 版本中删除。相反,请使用表中 具有相同名称的 列。MAX_VALUEvariables_infovariables_metadata

 有关更多信息和示例, 请参阅:https://dev.mysql.com/doc/refman/9.0/en/mysql-nutshell.html#mysql-nutshell-additions

MySQL 社区下载

地址:MySQL :: MySQL Community Downloads

这会就都到了熟悉的界面了






http://www.niftyadmin.cn/n/5537115.html

相关文章

Redis基础教程(十四):Redis连接

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

LangChain4j系列:带你入门LangChain4j框架

本文所有示例均在 langchain4j 0.31.0 版本之上进行,langchain4j也是在快速发展的阶段。 LangChain4j 框架是什么? LangChain4j 于 2023 年初在 ChatGPT 的炒作中开始开发。思想来源于 Python 和 JavaScript LLM 库,并加入创新思想&#xff…

云原生之使用Docker部署RabbitMQ消息中间件

云原生之使用Docker部署RabbitMQ消息中间件 一、RabbitMQ介绍1.1 RabbitMQ简介1.2 RabbitMQ特点1.3 RabbitMQ使用场景 二、检查Docker环境2.1 检查Docker版本2.2 检查操作系统版本2.3 检查Docker状态 三、下载RabbitMQ镜像四、部署RabbitMQ服务4.1创建挂载目录4.2 运行RabbitMQ…

香蕉云编+uniapp打包ios的开发包和生产包

登录香蕉云编,找到 云编-ios证书生成,新建CSR文件,并下载csr文件。 登录苹果开发者中心,进入证书页面。 1.创建一个证书,选择ios Distribution类型即可,这是个通用的证书,既能用来打正式包又能…

光伏电站数据采集方案(基于工业路由器部署)

​ 一、方案概述 本方案采用星创易联SR500工业路由器作为核心网关设备,实现对光伏电站现场数据的实时采集、安全传输和远程监控。SR500具备多接口、多功能、高可靠性等特点,能够满足光伏电站数据采集的各种需求。(key-iot.com/iotlist/sr500…

9 redis,memcached,nginx网络组件

课程目标: 1.网络模块要处理哪些事情 2.reactor是怎么处理这些事情的 3.reactor怎么封装 4.网络模块与业务逻辑的关系 5.怎么优化reactor? io函数 函数调用 都有两个作用:io检测 是否就绪 io操作 1. int clientfd = accept(listenfd, &addr, &len); 检测 全连接队列…

Windows环境使用SpringBoot整合Minio平替OSS

目录 配置Minio环境 一、下载minio.exe mc.exe 二、设置用户名和密码 用管理员模式打开cmd 三、启动Minio服务器 四、访问WebUI给的地址 SpringBoot整合Minio 一、配置依赖,application.yml 二、代码部分 FileVO MinioConfig MinioUploadService MinioController 三…

2025深圳国际消费电子展览会

2025深圳国际消费电子展览会 时间:2025年06月25-27日 地点:深圳国际会展中心(新馆) 详询主办方陆先生 I38(前三位) I82I(中间四位) 9I72(后面四位) 展会介绍: 20…