【MySQL】MySQL 9.0悄悄的来了

MySQL 9.0.0 中的变化

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

MySQL 企业版现在支持用 JavaScript 编写的存储程序,例如使用 CREATE FUNCTION下面显示的语句和 JavaScript 代码创建的这个简单示例:

sql 复制代码
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

sql 复制代码
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到用户变量中,使用此处显示的语法:

sql 复制代码
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 格式的输出保存到用户变量中,如下所示:

sql 复制代码
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 语句语法如下:

sql 复制代码
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

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





相关推荐
qianshang2334 小时前
SQL注入学习总结
网络·数据库·渗透
what丶k4 小时前
深入解析Redis数据持久化:RBD机制原理、实操与生产最佳实践
数据库·redis·缓存
瀚高PG实验室5 小时前
通过数据库日志获取数据库中的慢SQL
数据库·sql·瀚高数据库
Hgfdsaqwr5 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
invicinble5 小时前
对于Mysql深入理解
数据库·mysql
阳光九叶草LXGZXJ6 小时前
达梦数据库-学习-47-DmDrs控制台命令(LSN、启停、装载)
linux·运维·数据库·sql·学习
Hgfdsaqwr6 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
s1hiyu6 小时前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
2301_763472466 小时前
使用Seaborn绘制统计图形:更美更简单
jvm·数据库·python
熊文豪7 小时前
金仓数据库如何以“多模融合“重塑文档数据库新范式
数据库·金仓数据库·电科金仓·mongodb迁移