云服务器MySQL调优参数详解
内存相关参数
# InnoDB缓冲池大小,建议设置为物理内存的60-70%,用于缓存数据和索引
innodb_buffer_pool_size = 1G
# InnoDB缓冲池实例数,多实例可减少并发争用,1G内存建议设置为1
innodb_buffer_pool_instances = 1
# MyISAM索引缓冲区大小,用于缓存MyISAM表的索引
key_buffer_size = 32M
# 排序缓冲区大小,用于ORDER BY和GROUP BY操作
sort_buffer_size = 2M
# 顺序读缓冲区大小,用于全表扫描
read_buffer_size = 1M
# 随机读缓冲区大小,用于排序后的随机读取
read_rnd_buffer_size = 2M
# 临时表最大大小,超过此值将转为磁盘表
tmp_table_size = 64M
# 内存表最大大小,与tmp_table_size保持一致
max_heap_table_size = 64M
# 批量插入缓冲区大小,用于优化INSERT批量操作
bulk_insert_buffer_size = 64M
连接相关参数
# 最大连接数,根据服务器内存和应用需求设置
max_connections = 150
# 最大连接错误数,超过此值将阻止主机连接
max_connect_errors = 1000
# 连接超时时间,单位为秒
connect_timeout = 10
# 等待超时时间,非交互式连接空闲超时
wait_timeout = 28800
# 交互式超时时间,交互式连接空闲超时
interactive_timeout = 28800
# 线程缓存大小,缓存空闲线程避免重复创建
thread_cache_size = 50
# 每个线程的堆栈大小
thread_stack = 256K
InnoDB引擎参数
# 事务提交策略,2表示每秒同步一次,性能与安全平衡
innodb_flush_log_at_trx_commit = 2
# InnoDB日志缓冲区大小,用于缓存事务日志
innodb_log_buffer_size = 16M
# InnoDB日志文件大小,影响写入性能和恢复时间
innodb_log_file_size = 256M
# InnoDB刷新方法,O_DIRECT避免双重缓存
innodb_flush_method = O_DIRECT
# 每表独立表空间,便于管理和优化
innodb_file_per_table = 1
# InnoDB可打开的文件数
innodb_open_files = 400
# InnoDB I/O能力,根据磁盘性能调整
innodb_io_capacity = 200
# InnoDB最大I/O能力,突发情况下使用
innodb_io_capacity_max = 400
# InnoDB读线程数,影响并发读取性能
innodb_read_io_threads = 8
# InnoDB写线程数,影响并发写入性能
innodb_write_io_threads = 8
# InnoDB线程并发数,限制进入InnoDB的线程数
innodb_thread_concurrency = 16
# InnoDB锁等待超时时间,单位为秒
innodb_lock_wait_timeout = 120
# 启用死锁检测,自动检测并处理死锁
innodb_deadlock_detect = ON
查询缓存参数
# 查询缓存类型,1表示启用
query_cache_type = 1
# 查询缓存大小,用于缓存SELECT结果
query_cache_size = 64M
# 单个查询缓存最大大小,超过此值不缓存
query_cache_limit = 2M
# 查询缓存最小分配单元,影响内存碎片
query_cache_min_res_unit = 4K
慢查询日志参数
# 启用慢查询日志
slow_query_log = 1
# 慢查询日志文件路径
slow_query_log_file = /var/log/mysql/slow.log
# 慢查询阈值,执行时间超过此值的查询将被记录
long_query_time = 2
# 记录未使用索引的查询
log_queries_not_using_indexes = 1
二进制日志参数
# 启用二进制日志,用于主从复制和数据恢复
log_bin = mysql-bin
# 二进制日志格式,ROW格式记录数据变化
binlog_format = ROW
# 二进制日志保留天数
expire_logs_days = 7
# 单个二进制日志文件最大大小
max_binlog_size = 100M
# 二进制日志同步策略,0表示由文件系统控制
sync_binlog = 0
字符集和排序参数
# 服务器默认字符集,支持emoji和特殊字符
character-set-server = utf8mb4
# 服务器默认排序规则
collation-server = utf8mb4_unicode_ci
# 客户端连接时执行的初始化SQL
init_connect = 'SET NAMES utf8mb4'
安全参数
# 禁用LOAD DATA LOCAL INFILE,防止安全风险
local_infile = 0
# 禁用DNS解析,提升连接速度
skip_name_resolve = 1
京东云服务器MySQL调优参数配置完成后,建议重启MySQL服务使参数生效。这些参数针对1-2GB内存的轻量服务器优化,可根据实际配置调整数值大小