MySQL 5.7升级到MySQL8.0后,插入和删除查询运行较慢

2023年 9月 15日 29.7k 0

症状

MySQL 5.7升级到MySQL8.0后,插入和删除查询运行较慢

原因

transaction_write_set_extraction  MySQL 5.7中默认情况下该参数是禁用的 。而  MySQL 8.0中的参数发生了变化,默认值 是 XXHASH64,  当启用二进制日志记录时,这可能会导致插入和删除查询的性能下降。当 transaction_write_set_extraction  启用时,CPU使用率会稍高,这会影响更新性能。

注意:如果组复制被启用,它必须持续使用“XXHASH64”。

解决办法

建议设置transaction_write_set_extraction =OFF,然后重新启动并监视插入/删除执行时间,如果有任何改进的话。
也可以通过以下方式在线进行更改:

<code >mysql > SET GLOBAL transaction_write_set_extraction=OFF;

如果您在线更改了变量,它不会对正在复制的事务生效,直到通过“STOP REPLICA”和“START REPLICA”完全停止并重新启动复制副本。

还有其他参数可以提高性能,如下所示。

  • innodb-use-fdatasync 参数
    这innodb-use-fdatasync 是MySQL 8.0.26中添加的一个参数,它可能会提高支持fdatasync()的操作系统的性能。可以通过以下命令动态更改它:

<code >mysql > SET GLOBAL innodb_use_fdatasync=ON;

  • 参数
    这innodb_log_writer_threads是MySQL 8.0.22中添加的一个参数,它禁用并发日志缓冲区功能,因为该功能被认为在某些情况下会降低性能。
    针对该问题提出的相关错误:错误30088404-8.0的并发日志缓冲区导致低端架构上的CPU性能下降
    该变量可以通过以下命令动态更改:

<code >mysql > SET GLOBAL innodb_log_writer_threads=OFF;

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论