本文介绍: 从MySQL 8.0.31开始,可以将列的直方图设置为用户指定的JSON值。该语句使用直方图的JSON表示形式json_data为表tbl_name的列col_name创建或覆盖直方图。返回的列值应该是之前ANALYZE TABLE语句中使用的相同的json_data。在直方图采样过程中,如果错过了被认为是重要的值,这时候可以使用用户定义的直方图。当出现这种情况时,您可能希望修改直方图或基于完整数据集设置自己的直方图。另外,从大型用户数据集进行采样并构建直方图是资源密集型操作,可能会影响用户查询。
XA语句的复制过滤

以前,在使用–replicate-do-db或–replicate-ignore-db时,无论binlog_format的值如何,XA START、XA END、XA COMMIT和XA ROLLBACK语句都会由默认数据库进行过滤,这可能会导致事务被忽略。从MySQL 8.0.31开始,在这种情况下不再对这些语句进行过滤。

复制过滤和权限检查

从MySQL 8.0.31开始,在使用复制过滤时,副本不再因为权限检查或对被过滤事件进行require_row_format验证而引发复制错误,这使得可以过滤掉任何未通过验证的事务。

由于对被过滤行进行的权限检查不再会导致复制停止,因此副本现在可以仅接受特定用户被授权访问的数据库部分;只要对数据库的这部分更新仅以行级格式进行复制,这一点是成立的。

当从使用表进行管理或其他用途的本地部署或云服务迁移到MySQL Database Service时,这种功能也可能非常有用,因为传入的复制用户无法访问这些表。

INTERSECT和EXCEPT是表操作符

MySQL 8.0.31增加了对SQL的INTERSECT和EXCEPT表操作符的支持。其中a和b代表查询的结果集,这些操作符的行为如下:
– a INTERSECT b 只包括同时出现在结果集a和b中的行。
– a EXCEPT b 返回仅在结果集a中出现但不在b中出现的行。

INTERSECT DISTINCT、INTERSECT ALL、EXCEPT DISTINCT和EXCEPT ALL都得到支持;DISTINCT是INTERSECT和EXCEPT的默认选项(与UNION相同)。

用户定义的直方图

从MySQL 8.0.31开始,可以将列的直方图设置为用户指定的JSON值。可以使用以下SQL语法来实现:

ANALYZE TABLE tbl_name
 UPDATE HISTOGRAM ON col_name
 USING DATA 'json_data'

该语句使用直方图的JSON表示形式json_data为表tbl_name的列col_name创建或覆盖直方图。执行该语句后,可以通过查询Information Schema COLUMN_STATISTICS表来验证直方图是否已创建或更新,例如:

SELECT HISTOGRAM FROM INFORMATION_SCHEMA.COLUMN_STATISTICS
 WHERE TABLE_NAME='tbl_name' 
 AND COLUMN_NAME='col_name';

返回的列值应该是之前ANALYZE TABLE语句中使用的相同的json_data。

在直方图采样过程中,如果错过了被认为是重要的值,这时候可以使用用户定义的直方图。当出现这种情况时,您可能希望修改直方图或基于完整数据集设置自己的直方图。另外,从大型用户数据集进行采样并构建直方图是资源密集型操作,可能会影响用户查询。有了这个增强功能,直方图生成可以移至(主)服务器之外的副本进行,并且可以将生成的直方图分配给源服务器上的适当表列。

服务器构建标识符(Linux)

MySQL 8.0.31为Linux系统添加了只读的build_id系统变量,在编译时生成一个160位的SHA1签名;build_id的值是将生成的值转换为十六进制字符串后的结果,为构建提供了唯一标识符。每次MySQL启动时,build_id都会写入服务器日志。如果您从源代码构建MySQL,您会注意到此值在每次重新编译服务器时都会发生变化。

该变量仅在Linux平台上受支持,其他平台不支持该变量。

默认的EXPLAIN输出格式

MySQL 8.0.32 添加了一个名为explain_format的系统变量,该变量决定在没有指定任何FORMAT选项的情况下,用于获取查询执行计划的EXPLAIN语句的输出格式。例如,如果explain_format的值为TREE,则使用任何这样的EXPLAIN语句的输出将使用树形格式,就像语句指定了FORMAT=TREE一样。

这个行为可以被FORMAT选项中设置的值所覆盖。假设explain_format被设置为TREE,即使如此,EXPLAIN FORMAT=JSON stmt仍然会使用JSON输出格式显示结果。

ST_TRANSFORM()函数中添加了笛卡尔空间参考系统(SRS)的支持

在MySQL 8.0.30之前,ST_TRANSFORM()函数不支持笛卡尔空间参考系统(SRS)。在MySQL 8.0.30及更高版本中,该函数提供了对Popular Visualisation Pseudo Mercator(EPSG 1024)投影方法的支持,用于WGS 84 Pseudo-Mercator(SRID 3857)。MySQL 8.0.32及更高版本支持所有笛卡尔SRS,但不支持EPSG 1042、EPSG 1043、EPSG 9816和EPSG 9826。

原文地址:https://blog.csdn.net/hay23455/article/details/135510058

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_56326.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注