当前位置:   article > 正文

【MySQL】MySQL 9.0悄悄的来了

mysql 9

MySQL 9.0.0 中的变化

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

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

  1. CREATE FUNCTION gcd(a INT, b INT)
  2. RETURNS INT
  3. NO SQL
  4. LANGUAGE JAVASCRIPT AS
  5. $mle$
  6. let x = Math.abs(a)
  7. let y = Math.abs(b)
  8. while(y) {
  9. var t = y
  10. y = x % y
  11. x = t
  12. }
  13. return x
  14. $mle$
  15. ;
VECTOR 类型支持

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

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

  1. mysql> CREATE TABLE v1 (c1 VECTOR(5000));
  2. 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 格式的输出保存到用户变量中,如下所示:

  1. mysql> EXPLAIN FORMAT=JSON INTO @myselect
  2. -> SELECT name FROM a WHERE id = 2;
  3. Query OK, 0 rows affected (0.00 sec)
  4. mysql> SELECT @myselect\G
  5. *************************** 1. row ***************************
  6. @myex: {
  7. "query_block": {
  8. "select_id": 1,
  9. "cost_info": {
  10. "query_cost": "1.00"
  11. },
  12. "table": {
  13. "table_name": "a",
  14. "access_type": "const",
  15. "possible_keys": [
  16. "PRIMARY"
  17. ],
  18. "key": "PRIMARY",
  19. "used_key_parts": [
  20. "id"
  21. ],
  22. "key_length": "4",
  23. "ref": [
  24. "const"
  25. ],
  26. "rows_examined_per_scan": 1,
  27. "rows_produced_per_join": 1,
  28. "filtered": "100.00",
  29. "cost_info": {
  30. "read_cost": "0.00",
  31. "eval_cost": "0.10",
  32. "prefix_cost": "0.00",
  33. "data_read_per_join": "408"
  34. },
  35. "used_columns": [
  36. "id",
  37. "name"
  38. ]
  39. }
  40. }
  41. }
  42. 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 语句语法如下:

  1. CREATE
  2. [DEFINER = user]
  3. EVENT
  4. [IF NOT EXISTS]
  5. event_name
  6. ON SCHEDULE schedule
  7. [ON COMPLETION [NOT] PRESERVE]
  8. [ENABLE | DISABLE | DISABLE ON {REPLICA | SLAVE}]
  9. [COMMENT 'string']
  10. DO event_body;
  11. schedule: {
  12. AT timestamp [+ INTERVAL interval] ...
  13. | EVERY interval
  14. [STARTS timestamp [+ INTERVAL interval] ...]
  15. [ENDS timestamp [+ INTERVAL interval] ...]
  16. }
  17. interval:
  18. quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
  19. WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
  20. 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

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





声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/962748
推荐阅读
相关标签
  

闽ICP备14008679号