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
推荐阅读
- 深入探讨 MySQL 的 order by 优化
- 戴尔|12代酷睿i5+23.8英寸全面屏 戴尔灵越5411一体机上架:首发3299元起
- 程序员经典面试题,谈一谈Mysql中的事务
- 全面,干货!关于公积金的使用解说
- 什么是网站过度优化?
- Linux安装Mysql解决中文乱码
- mysql典型的超时异常你见过几种?
- 网站内链是怎样影响seo优化
- 一文看懂mysql两种join连接算法--NLJ和BNL
- mysql 大批量插入解决方案