MySQL系列~参数优化
2024-05-19 本文已影响0人
开心的蛋黄派
一、内存配置
单实例多库(每个实例对应多个库)
-
innodb_buffer_pool_size
:- 小于32G时,设置为总内存的60%
- 大于32G时,设置为总内存的70%
-
innodb_buffer_pool_instances
: 推荐设置为8
多实例单库(每个实例对应一个库)
-
innodb_buffer_pool_size
:- 小容量设置为1G
- 中容量设置为2G-4G
- 重要业务独占机器设置为总内存的70%
-
innodb_buffer_pool_instances
:- 1G内存时,设置为1
- 2G-4G内存时,推荐设置为2
- 重要业务独占机器时,设置为8
二、InnoDB其他配置
-
innodb_temp_data_file_path
:ibtmp1:12M;autoextend:max50G
(设置临时表空间最大为50G) -
innodb_data_home_dir
:/data/mysql/data
(数据目录) -
innodb_log_files_in_group
: 设置redo日志组个数(根据实际需求设置) -
innodb_log_file_size
: 设置每个redo日志大小(根据实际需求设置) -
sync_binlog
: 1(双1设置,确保数据安全性) -
innodb_flush_log_at_trx_commit
: 1(确保每次事务提交都写入日志文件)
三、磁盘IO配置
-
innodb_io_capacity
: 10000(每秒执行的I/O操作数上限,经验值10000,可根据实际IOPS调整) -
innodb_io_capacity_max
: 20000(经验值20000,通常设置为innodb_io_capacity
的两倍)
四、超时设置
-
wait_timeout
: 7200(非交互式超时设置,针对sleep链接) -
interactive_timeout
: 7200(交互式超时设置) -
innodb_lock_wait_timeout
: 50(InnoDB事务等待超时设置,如行锁等待) -
lock_wait_timeout
: 60(事务等待超时设置,如MDL锁)
五、字符集设置
-
character_set_server
: utf8mb4(支持更多字符的UTF-8编码)
六、并行复制设置
-
slave_parallel_type
: LOGICAL_CLOCK(基于逻辑时钟的复制方式) -
slave_parallel_workers
: 8(并行线程数) -
slave_preserve_commit_order
: 1(按照主库的提交顺序在从库提交) -
transaction_write_set_extraction
: XXHASH64(高版本支持,用于并行复制) -
binlog_transaction_dependency_tracking
: WRITESET(高版本支持,提供更细粒度的并行复制能力)
七、GTID设置
-
gtid_mode
: on(开启GTID) -
enforce_gtid_consistency
: on(开启GTID约束)
八、半同步复制设置
-
rpl_semi_sync_slave_enabled
: 1(所有节点启用) -
rpl_semi_sync_master_enabled
: 1(主节点启用) -
rpl_semi_sync_master_wait_for_slave_count
: 1(等待从服务器应答数量) -
rpl_semi_sync_master_wait_no_slave
: on(退化为异步复制强度的开关) -
loose_rpl_semi_sync_master_wait_point
: AFTER_SYNC(增强半同步复制)
九、基础设置
-
read_only
: 1(设置为只读模式) -
super_read_only
: 1(设置为超级只读模式) -
open_files_limit
: 65535(设置最大文件打开数)
十、其他设置
-
max_allowed_packet
: 64M(包大小限制) -
skip_name_resolve
: on(跳过DNS解析,提高效率) -
lower_case_table_names
: 1(不区分大小写,Linux系统下默认为0)
请注意,这些配置建议仅供参考,并可能需要根据您的具体硬件、工作负载和性能需求进行调整。在更改任何配置之前,请务必备份您的数据和配置文件,并在非生产环境中测试更改的影响。