MySQL全面优化,速度飞起来( 四 )


sort_buffer_size:# 排序缓存
read_buffer_size:# 顺序读取缓存
read_rnd_buffer_size:# 随机读取缓存
key_buffer_size:# 索引缓存
thread_cache_size:# (1G—>8, 2G—>16, 3G—>32, >3G—>64)
 
连接层(基础优化)
 
设置合理的连接客户和连接方式:
 
max_connections # 最大连接数,看交易笔数设置
max_connect_errors # 最大错误连接数,能大则大
connect_timeout # 连接超时
max_user_connections # 最大用户连接数
skip-name-resolve # 跳过域名解析
wait_timeout # 等待超时
back_log # 可以在堆栈中的连接数量
 
SQL层(基础优化)
 
query_cache_size:查询缓存 >>> OLAP类型数据库,需要重点加大此内存缓存,但是一般不会超过GB 。
对于经常被修改的数据,缓存会立马失效 。
我们可以实用内存数据库(redis、memecache),替代他的功能 。
 
2、存储引擎层(innodb基础优化参数)
 
default-storage-engine
innodb_buffer_pool_size # 没有固定大小,50%测试值,看看情况再微调 。但是尽量设置不要超过物理内存70%
innodb_file_per_table=(1,0)
innodb_flush_log_at_trx_commit=(0,1,2) # 1是最安全的,0是性能最高,2折中
binlog_sync
Innodb_flush_method=(O_DIRECT, fdatasync)
innodb_log_buffer_size # 100M以下
innodb_log_file_size # 100M 以下
innodb_log_files_in_group # 5个成员以下,一般2-3个够用(iblogfile0-N)
innodb_max_dirty_pages_pct # 达到百分之75的时候刷写 内存脏页到磁盘 。
log_bin
max_binlog_cache_size # 可以不设置
max_binlog_size # 可以不设置
innodb_additional_mem_pool_size #小于2G内存的机器,推荐值是20M 。32G内存以上100M
参考
https://www.cnblogs.com/zishengY/p/6892345.html
https://www.jianshu.com/p/d7665192aaaf




推荐阅读