赞
踩
MySQL 8.4 LTS 版本,我们一共修改了 20 个 InnoDB 变量的默认值。
作者:Frederic Descamps,EMEA 和亚太地区的 MySQL 社区经理。于 2016 年 5 月加入 MySQL 社区团队。担任开源和 MySQL 顾问已超过 15 年。最喜欢的主题是高可用和高性能。
本文和封面来源:https://lefred.be,爱可生开源社区翻译。
本文约 2400 字,预计阅读需要 8 分钟。
2024 年 4 月 30 日,MySQL 8.4(第一个 LTS 版)正式发布,也验证了 Oracle 官方在之前宣布的 MySQL 版本发布节奏。
目前,MySQL 的发布模型分为两个主要路径:LTS 版(长期支持)和创新版。所有 LTS 和创新版本都包含错误和安全修复,并被视为生产级质量。更多MySQL 版本介绍
请参考 Oracle 官方提供的 MySQL 各版本生命周期计划(20240430),以更好地安排您生产环境的 MySQL 版本选择。
以下内容为 MySQL 社区经理 Frederic Descamps 对该版本中 InnoDB 参数默认值修改的详细介绍。
发布于当地时间 2024 年 5 月 1 日
昨天(4/30),MySQL 的第一个 LTS 版本 MySQL 8.4 发布了。
许多弃用的内容最终被删除,并且几个 InnoDB 变量默认值已被修改以匹配当前的工作负载和硬件规格。
有 20 个 InnoDB 变量的默认值已被修改!
让我们看一下这些变量并解释这样修改的原因:
版本 | 默认值 |
---|---|
8.4 之前 | ON |
8.4 LTS | 如果支持 MADV_DONTDUMP 为 OFF,否则 ON |
MADV_DONTDUMP 是 Linux 3.4 及更高版本中支持的宏(存在“ sys/mman.h”头文件并包含符号 MADV_DONTDUMP,一个 madvise()
的 non-POSIX 扩展),Windows 系统或大多数 MacOS 系统不支持此宏。
总之,这意味着默认情况下,在 Linux 系统上,缓冲池的内容不会转储到核心文件中。
版本 | 默认值 |
---|---|
8.4 之前 | 8(如果 BP < 1 GB,则为 1) |
8.4 LTS | 如果 BP <= 1 GB:1 如果 BP > 1 GB:则为 1-64 范围内的最小值: a. (innodb_buffer_pool_size / innodb_buffer_pool_chunk_size) / 2 b. 1/4 可用逻辑处理器 |
旧值 8 在某些系统上可能太大。手册中包含 BP 大小计算的好示例,请参阅 配置 InnoDB 缓冲池大小。
版本 | 默认值 |
---|---|
8.4 之前 | all |
8.4 LTS | none |
Change Buffer 是一种通过延迟对二级索引的写入操作来支持顺序 I/O 的技术。在最新的硬件上,随机 I/O 不再是问题。
版本 | 默认值 |
---|---|
8.4 之前 | OFF |
8.4 LTS | OFF |
从 MySQL 8.0 开始,当 MySQL 运行在可供数据库使用的所有资源的专用服务器上时,我们建议启用此变量,并且不要手动修改 InnoDB 设置。
该变量的默认值是相同的,但是通过启用 innodb_dedicated_server
控制的变量是不同的。
当 innodb_dedicated_server
启用时,innodb_flush_method
不会自动配置。
版本 | 默认值 |
---|---|
8.4 之前 | ON |
8.4 LTS | OFF |
AHI(InnoDB 自适应哈希索引)长期以来一直是一些性能问题的原因。每个经验丰富的 DBA 总是建议禁用它,就像旧的查询缓存一样。我很惊讶没有像 Domas Mituzas 的查询缓存调优器那样的 AHI 调优器
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。