MySQL 8.1.0正式发布!

2023-07-2715:31:32数据库教程Comments1,382 views字数 1618阅读模式

五年前,MySQL 8.0 就发布了第一个 GA 版本,此后一直在这个版本进行更新,而没有升级大版本。最近 MySQL 官方终于发布了 MySQL 8.1.0 和 MySQL 8.0.34,分别代表了创新版和长期支持版。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

MySQL 8.1.0正式发布!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

新版本中与 SQL 相关的改进包括保存执行计划输出和使用系统函数作为字符字段的默认值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

MySQL 8.1.0 版本支持将 EXPLAIN FORMAT=JSON 命令的输出结果保存为一个用户变量,语法如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

EXPLAIN FORMAT=JSON INTO var_name 
explainable_stmt

变量的值是一个 JSON 文档,可以进一步使用 JSON 函数 (例如 JSON_EXTRACT())进行处理。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

其中,INTO 子句只支持 FORMAT=JSON 选项,系统变量 explain_format 设置的 JSON 格式无效。如果 explainable_stmt 无法执行,用户变量的值不会被更新。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

INTO 子句不支持 EXPLAIN ANALYZE 和 EXPLAIN FOR CONNECTION 语句。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

关于 EXPLAIN 命令的详细介绍,可以参考官方文档。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

https://dev.mysql.com/doc/refman/8.1/en/explain.html#explain-execution-plan文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

MySQL 8.1.0 和 MySQL 8.0.34 支持使用系统函数 CURRENT_USER()、SESSION_USER()、USER() 以及 SYSTEM_USER() 作为 VARCHAR 和 TEXT 字段的默认值。例如:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

mysql> SELECT CURRENT_USER();
+-------------------+
| CURRENT_USER()    |
+-------------------+
|  sakila@localhost |
+-------------------+
1 row in set (0.00 sec)

mysql> CREATE TABLE t (
     >  c1 VARCHAR(288) DEFAULT (USER()),
     >  c2 VARCHAR(288) DEFAULT (CURRENT_USER()),
     >  c3 VARCHAR(288) DEFAULT (SESSION_USER()), 
     >  c4 VARCHAR(288) DEFAULT (SYSTEM_USER())
     > );
Query OK, 0 rows affected (0.04 sec)

mysql> INSERT INTO t VALUES ROW();
Query OK, 1 row affected (0.01 sec)

mysql> TABLE t;
+-------------------+-------------------+-------------------+-------------------+
| c1                | c2                | c3                | c4                |
+-------------------+-------------------+-------------------+-------------------+
|  sakila@localhost |  sakila@localhost |  sakila@localhost |  sakila@localhost |
+-------------------+-------------------+-------------------+-------------------+
1 row in set (0.00 sec)

如果我们使用 SHOW CREATE TABLE 和 SHOW COLUMNS 命令查看表结构时,可以看到定义中的函数。另外,也可以通过系统表 INFORMATION_SCHEMA.COLUMNS 的 COLUMN_DEFAULT 字段查看默认值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

如果想要确保可以存储最大可能的数据长度,定义的字段长度至少为 288 个字符(用户名占用 255、主机名占用 32、加上一个 @ 符号)。定义 CHAR 类型的字段时,不推荐使用以上系统函数作为默认值,因为可能会导致错误或者数据丢失。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51987.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/51987.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定