MySQL数据库参数解读-第二篇

目录

一、OS参数

1、numa=off

2、swappiness=0

3、SELINUX=disabled

4、firewalld关闭

二、server参数

1、socket

2、datadir

3、basedir

4、default_time_zone

5、character_set_server

6、lower_case_table_names

三、innodb参数

1、lock_wait_timeout

2、innodb_log_group_home_dir

3、innodb_buffer_pool_size

4、innodb_thread_concurrency

5、innodb_buffer_pool_instances

6、innodb_lock_wait_timeout

在第一篇,我们介绍了四个MySQL数据库中容易被忽略却又很重要的参数,本篇介绍MySQL数据库中的重要参数,参数分为OS参数、server参数、innodb参数。

一、OS参数

1、numa=off

作用:禁用numa架构,避免MySQL进程被绑定到特定CPU节点导致内存分配不均,防止性能抖动和swap异常使用。

2、swappiness=0

作用:关闭swap强制系统优先使用物理内存,仅在物理内存完全耗尽时才使用swap分区,避免MySQL内存页被置换到磁盘导致性能大幅下降

3、SELINUX=disabled

作用关闭selinux(安全增强型Linux)安全模块,避免其严格的访问控制策略拦截MySQL对数据文件、日志文件、端口的正常读写操作,减少权限相关的异常排查成本。

4、firewalld关闭

作用:防火墙关闭,防止其拦截MySQL客户端连接、主从复制通信请求

二、server参数

1、socket

作用:指定MySQL本地套接字文件(socket文件)的路径,本地客户端(如localhost连接)通过该文件与MySQL实例通信,比TCP/IP连接更高效。

2、datadir

作用:指定MySQL数据文件的存储目录,包含InnoDB表空间文件、MyISAM数据文件、数据库目录结构等核心数据。

3、basedir

作用:指定MySQL程序的安装目录,包含二进制文件(如mysqld、mysql客户端)、配置文件模板、共享库等。

4、default_time_zone

作用:一般设置MySQL实例的默认时区为东八区(+08:00),确保数据库中时间类型字段(如DATETIME、TIMESTAMP)的存储和查询结果与业务时区一致,避免时区转换导致的时间偏差问题。

5、character_set_server

作用:建议设置MySQL实例的默认服务器字符集为utf8mb4,支持包括Emoji表情在内的4字节Unicode字符,解决传统utf8字符集(实际为utf8mb3)无法存储4字节字符的问题,满足多语言和特殊符号的业务需求。

6、lower_case_table_names

作用:建议设置MySQL表名不区分大小写(值为1表示启用);表名在存储和查询时会自动转换为小写,避免因操作系统大小写敏感(如Linux)导致的表名匹配错误,适用于业务中表名大小写不规范的场景(需在实例初始化时设置,初始化后不可修改)。

三、innodb参数

1、lock_wait_timeout

作用:设置事务等待表级锁的超时时间,单位为秒,当一个事务请求的表锁被其他事务占用时,等待设置时间后若仍未获取锁则自动报错(ERROR 1205),避免事务无限等待导致连接堆积。

2、innodb_log_group_home_dir

作用:设置InnoDB重做日志(redo log)文件的路径。

3、innodb_buffer_pool_size

作用:设置InnoDB缓冲池大小。

4、innodb_thread_concurrency

作用:设置InnoDB的最大并发线程数。

5、innodb_buffer_pool_instances

作用:设置InnoDB缓冲池的实例数量,将缓冲池拆分为多个独立的内存区域,每个区域有自己的锁和管理结构,减少多线程并发访问缓冲池时的锁竞争,提升高并发场景下的性能(建议每个实例大小不小于1GB,如40GB缓冲池设置为8个实例,每个5GB)。

6、innodb_lock_wait_timeout

作用:设置InnoDB事务等待行锁的超时时间,单位为秒,当一个事务请求的行锁被其他事务占用时,等待指定时间后若仍未获取锁则自动回滚事务并报错(ERROR 1205),避免事务无限等待导致连接堆积和死锁。

相关推荐
九皇叔叔3 小时前
【第二章】Redis基础入门:Redis是什么、为什么快以及核心特性详解
数据库·redis·缓存
莫陌尛.3 小时前
Docker MySQL 删表卡死、执行超时(MDL锁阻塞)问题复盘与根治方案
mysql·docker·容器
云和恩墨3 小时前
删库不跑路,回滚极速触达——zData S“旁路日志”持续保护原理深剖
数据库
MetaLite4 小时前
SpringBoot接口分层规范-外网网关内部服务与参数边界
java·数据库·spring boot
Wang's Blog6 小时前
Java框架快速入门: Spring Security+OAuth2之元注解简化权限表达式
java·数据库·spring
毕业设计7036 小时前
(免费领源码) 基于微信小程序的预制菜商城的设计与实现25172-java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
vue.js·python·mysql·微信小程序·pycharm·微信开发者工具·推荐算法
蓝速科技8 小时前
医院导诊 AI 数字人一体机场景适配与落地指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理·技术分享
QYR-分析8 小时前
重轨受电弓行业深度报告:市场格局、技术迭代与发展前景
大数据·数据库·人工智能
泡泡鱼(敲代码中)8 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
l1t9 小时前
DeepSeek总结的chdb-core v26.7.3发版说明
数据库·clickhouse·oracle