MySQL 8.0中新增的功能(十)

这篇具有很好参考价值的文章主要介绍了MySQL 8.0中新增的功能(十)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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://www.toymoban.com/news/detail-820918.html

到了这里,关于MySQL 8.0中新增的功能(十)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL 8.0中移除的功能(一)

    以下项目已经过时并在MySQL 8.0中被删除。如果有替代方案,请务必更新应用程序以使用这些替代方案。 对于在MySQL 8.0中被删除的功能,如果从MySQL 5.7源复制到MySQL 8.0副本时,可能会导致语句失败,或者在源和副本上产生不同的效果。为了避免这样的问题,使用在MySQL 8.0中被删

    2024年02月01日
    浏览(37)
  • ES6中新增的Set/Map两种数据结构

    Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构🧀🧀🧀 什么是集合?什么又是字典? 集合 是由一堆无序的、相关联的、且不重复的内存结构【数学中称之为元素】组成的组合 字典 是一些元素的集合。每个元素有一个称作key的域,不同元素的key各不相同 区别

    2024年02月07日
    浏览(39)
  • php开发实战分析(1):mysql操作字段(添加、删除、修改,多数据表中新增多个字段)

    要删除MySQL数据库中的字段,您需要执行以下步骤: 连接到MySQL数据库。您可以使用MySQL的PHP扩展或PDO(PHP数据对象)来实现连接。 使用MySQL扩展连接示例: 使用PDO连接示例: 构造SQL语句删除字段。使用 ALTER TABLE 语句来删除字段。在语句中使用 DROP COLUMN 指定要删除的

    2024年02月16日
    浏览(45)
  • mysql 8.0 双密码

    当需要定期修改密码,又不想影响现有连接的情况下,怎么才能做到无缝切换呢 从 MySQL 8.0.14 开始,用户帐户允许拥有双重密码,指定为主密码和辅助密码。双密码功能使得在以下场景中无缝执行凭证更改成为可能: 一个系统有大量MySQL服务器,可能涉及到复制。 多个应用程

    2024年01月19日
    浏览(56)
  • MySQL 8.0 密码策略修改

    2024年02月15日
    浏览(41)
  • mysql 8.0版本更换用户密码

    1、首先 cmd 进入命令行  2、查询版本号 3、看一下数据库 4、使用mysql即可 5、进行查询 user、host 6、修改root的密码 7、刷新权限

    2024年02月11日
    浏览(46)
  • macOS mysql 8.0 忘记密码

    root\\\'@\\\'localhost\\\' 指定了要修改的用户为 root 用户,并且限定了该用户只能从本地主机登录。 IDENTIFIED WITH caching_sha2_password 是指定了验证插件为 caching_sha2_password,一种密码验证插件 macos上 mysql 8.0 重置密码记录

    2024年02月15日
    浏览(35)
  • MySQL 8.0 修改 Root 密码

    MySQL 是一种常见的关系型数据库,在数据库管理中 MySQL 8.0 版本也是比较常用的版本,但是 MySQL 在初次安装之后默认设置了 root 用户的密码,对于一些情况下需要修改 root 用户密码的操作,需要使用特定的命令和工具。 一、MySQL 修改 Root 密码 MySQL 8.0 版本在安装完成之后,

    2024年01月21日
    浏览(46)
  • 【MySQL 8.0】标准配置文件详解(上)

    将按照不同的模块介绍配置项: 文末附上参考配置文件 socket MySQL 在本地可以通过 socket 方式连接,如果 my.cnf 配置文件中的 [client] 部分没有指定 socket 文件路径, mysql 默认会去寻找 /tmp/mysql.sock 为了安全考虑,通常会设置特定的 socket 路径 port 默认情况下,MySQL使用3306作为默

    2024年02月03日
    浏览(55)
  • MySql 8.0 配置外网访问

    1.登进MySQL之后 2,输入以下语句,进入mysql库: 3,更新域属性,\\\'%\\\'表示允许外部访问: 4,执行以上语句之后再执行: 5,再执行授权语句: 然后外部就可以通过账户密码访问了。 6,其它说明: 命令本质上的作用是: 将当前user和privilige表中的用户信息/权限设置从mysql库(

    2024年02月16日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包