MySQL5.7参数调优
如题,表行数达到了67亿行
-- 查询数据库参数配置相关 -- C:\ProgramData\MySQL\MySQL Server 5.7\my.in # InnoDB 缓存池大小 - 根据服务器总内存大小调整 innodb_buffer_pool_size=8G # 假设服务器有16GB内存 # InnoDB 日志文件大小 - 较大的值可以减少日志切换频率 innodb_log_file_size=512M # InnoDB 日志刷新策略 - 减少写操作频率 innodb_flush_log_at_trx_commit=2 # 每秒刷新一次日志到磁盘 # 查询缓存大小 - 对于写多读少的应用场景,建议关闭查询缓存 query_cache_size=0 # I/O 能力 - 对于机械硬盘,保持默认值或适度调整 innodb_io_capacity=100 # 禁用自适应哈希索引 - 在某些情况下可能导致性能下降 innodb_adaptive_hash_index=0 # 关闭二进制日志,除非需要复制功能 # skip-log-bin # 增加表打开缓存大小 table_open_cache=2000 # 增加线程缓存大小(本地程序10足矣) thread_cache_size=10 # 减少InnoDB后台线程的数量,降低对CPU和I/O的压力 innodb_purge_threads=1 # 控制临时表的最大大小,避免过多的磁盘I/O tmp_table_size=64M max_heap_table_size=64M # 调整排序缓冲区大小 sort_buffer_size=2M # 调整Join操作缓冲区大小 join_buffer_size=2M # 调整读取数据缓冲区大小 read_buffer_size=1M # 调整随机读取缓冲区大小 read_rnd_buffer_size=8M
查询是否生效
SHOW VARIABLES LIKE 'innodb_buffer_pool_size'; SHOW VARIABLES LIKE 'innodb_log_file_size'; SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit'; SHOW VARIABLES LIKE 'query_cache_size'; SHOW VARIABLES LIKE 'innodb_io_capacity'; SHOW VARIABLES LIKE 'table_open_cache'; SHOW VARIABLES LIKE 'thread_cache_size'; SHOW VARIABLES LIKE 'tmp_table_size'; SHOW VARIABLES LIKE 'max_heap_table_size'; SHOW VARIABLES LIKE 'sort_buffer_size'; SHOW VARIABLES LIKE 'join_buffer_size'; SHOW VARIABLES LIKE 'read_buffer_size'; SHOW VARIABLES LIKE 'read_rnd_buffer_size';