MySQL 8.0.20 稳定版已于4月27日发布

现在已不赞成 使用VALUES()来访问INSERT ... ON DUPLICATE KEY UPDATE语句中的新行值 ,并且在将来的MySQL版本中可能会删除该用法。相反,您应该为新行及其列使用​​别名,如MySQL 8.0.19及更高版本中所实现。

-- 例如,此处显示的语句 VALUES()用于访问新的行值:

INSERT INTO t1 (a,b,c) VALUES (1,2,3),(4,5,6)
  ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);
-- 此后,您应该改为使用类似于以下内容的语句,该语句为新行使用别名:

INSERT INTO t1 (a,b,c) VALUES (1,2,3),(4,5,6) AS new
  ON DUPLICATE KEY UPDATE c = new.a+new.b;
-- 或者,您可以为新行及其每一列都使用别名,如下所示:

INSERT INTO t1 (a,b,c) VALUES (1,2,3),(4,5,6) AS new(m,n,p)
  ON DUPLICATE KEY UPDATE c = m+n;

--------------------------------------------

InnoDB:改进了 竞争感知事务调度(CATS)算法,该算法优先考虑等待锁的事务。现在,事务调度权重计算完全在单独的线程中执行,从而提高了计算性能和准确性。

删除了也用于事务调度的先进先出(FIFO)算法。CATS算法的增强使FIFO算法变得多余。以前由FIFO算法执行的事务调度现在由CATS算法执行。

TRX_SCHEDULE_WEIGHT在INFORMATION_SCHEMA.INNODB_TRX 表中添加了 一个列 ,该列允许查询由CATS算法分配的事务调度权重。

INNODB_METRICS添加了 以下计数器来监视代码级事务调度事件:

             lock_rec_release_attempts

        尝试释放记录锁定的次数。

             lock_rec_grant_attempts

        授予记录锁定的尝试次数。

             lock_schedule_refreshes

        分析等待图表以更新交易计划权重的次数。

-------------------------------------------------

InnoDB: 双写缓冲区的存储区已从系统表空间移至双写文件。将双写缓冲区存储区移出系统表空间可减少写延迟,增加吞吐量并在双写缓冲区页的放置方面提供灵活性。为高级双写缓冲区配置引入了以下系统变量:

      innodb_doublewrite_dir

定义双写缓冲区文件目录。

      innodb_doublewrite_files

定义双写文件的数量。

      innodb_doublewrite_pages

定义批量写入时每个线程的最大双写页数。

      innodb_doublewrite_batch_size

定义要批量写入的双写页面数。
---------------------------------------------

EXPLAIN ANALYZE现在可以使用KILL QUERY或 CTRL-C在执行期间停止 。

EXPLAIN FORMAT=TREE现在显示inversion 窗口功能的信息。

EXPLAIN FORMAT=TREE输出已得到改进,以提供有关评估的窗口函数的更多信息,并与为常规聚合提供的信息相匹配。

EXPLAIN ANALYZE现在支持该 FORMAT选项。当前 TREE是唯一受支持的格式。
---------------------------------------------

从MySQL 8.0.20开始,可以在MySQL服务器实例上启用二进制日志事务压缩。启用二进制日志事务压缩后,将使用zstd算法压缩事务有效负载,然后将其作为单个事件(a Transaction_payload_event)写入服务器的二进制日志文件 。压缩后的事务有效负载在复制流中发送到复制从属设备,其他组复制组成员或客户端(例如mysqlbinlog)时,保持压缩状态 。它们不会被接收线程解压缩,并且仍以其压缩状态写入中继日志。因此,二进制日志事务压缩既可以节省事务的始发者,也可以节省接收者(及其备份)的存储空间,并在服务器实例之间发送事务时节省网络带宽。

使用binlog_transaction_compression系统变量(默认为OFF)在MySQL服务器实例上启用二进制日志事务压缩。还可以使用binlog_transaction_compression_level_zstd系统变量来设置用于压缩的zstd算法的级别。此值确定压缩工作量,从1(最小工作量)到22(最大工作量)。

---------------------------------------------

修正了多个BUG和影响性能的代码实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值