使用说明
建议关注官网MySQL 8.0.20版本的CVE漏洞,按照要求及时进行漏洞修复。
应用场景
OLTP负载中无论读写操作(select/update/insert/delete),都需要访问数据页映射表来快速定位目标数据页,其中涉及MySQL中的hash_table_locks。如果通过Performance Schema观测到hash_table_locks热点(此时CPU利用率通常较高),可通过本特性缓解该热点,提升吞吐量。
本特性在补丁应用后重新编译MySQL,还需额外配置系统变量才能生效,详见新增系统变量。
编译安装方法
MySQL hash_table_locks优化特性以Patch补丁文件形式提供,该补丁基于MySQL 8.0.20版本开发,并在Gitee社区开源,使用该特性前,需要先将Patch应用到MySQL源码中,再编译和安装MySQL。具体操作步骤如下:
- 下载MySQL 8.0.20源码,上传源码至服务器“/home”目录下后,解压源码包并进入MySQL源码的根目录。
1 2 3
cd /home tar -zxvf mysql-boost-8.0.20.tar.gz cd mysql-8.0.20
- 下载hash_table_locks优化补丁文件,并上传至MySQL源码的根目录。
- 在源码根目录,使用git初始化命令来建立git管理信息。
1 2 3
git init git add -A git commit -m "Initial commit"
- 合入hash_table_locks优化补丁。
1
git am --quiet --whitespace=nowarn 0001-HASH-TABLE-LOCKS-OPT.patch
如果没有回显报错信息,则补丁应用成功。
- 根据正常的编译安装MySQL源码的操作步骤进行MySQL的编译安装。详细信息请参见《MySQL 移植指南》。
- 在重新编译MySQL之后,还需额外在配置文件、启动参数或运行时配置系统变量才能生效。详细信息请参见新增系统变量。
父主题: hash_table_locks优化