抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

数据库调优包含两个大方向,一个是 MySQL 参数优化,另一个是 SQL 语句的优化,后者常交给开发工程师处理。而 MySQL 需要经过大量尝试才能得出最优参数,今天给大家讲解一下参数的作用及相关推荐值!

参数作用

首先说一下各参数作用:

参数名称参数作用
key_buffer_size单位为 MB,用于索引的缓冲区大小
query_cache_size单位为 MB,查询缓存,不开启请设为 0
tmp_table_size单位为 MB,临时表缓存的大小
innodb_buffer_pool_size单位为 MB,InnoDB 缓冲区大小
innodb_log_buffer_size单位为 MB,InnoDB 日志缓冲区大小
sort_buffer_sizeKB 乘以连接数,每个线程排序的缓冲的大小
read_buffer_sizeKB 乘以连接数,读入缓冲区的大小
read_rnd_buffer_sizeKB 乘以连接数,随机读取缓冲区的大小
join_buffer_sizeKB 乘以连接数,关联表缓存的大小
thread_stackKB 乘以连接数,每个线程的堆栈的大小
binlog_cache_sizeKB 乘以连接数,二进制日志缓存的大小「4096 的倍数」
thread_cache_size线程池的大小
table_open_cache表的缓存「最大别超过 2048」
max_connections最大的连接数

推荐阈值

然后说一下不同内存的推荐阈值:

优化方案1-2GB2-4GB4-8GB8-16GB16-32GB
key_buffer_size1282683845121024
query_cache_size00000
tmp_table_size6438451210242048
innodb_buffer_pool_size25638451210244096
innodb_log_buffer_size88888
sort_buffer_size768768102420484096
read_buffer_size768768102420484096
read_rnd_buffer_size51251276810242048
join_buffer_size10242048204840968192
thread_stack256256256384512
binlog_cache_size6464128192256
thread_cache_size6496128192256
table_open_cache12819238410242048
max_connections100200300400500

特别声明

不同的程序对数据库的需求不同,以上数值仅供参考,具体阈值还要根据实例运行情况进行修改。

以上数值皆为云主机进行的尝试,如果是实体服务器,则阈值差异会更大!

补充说明

query_cache_size 为查询缓存,我习惯不启用,毕竟 WordPress 的查询语句实在惨不忍睹,这个对 WordPress 用户来说几乎无用。

如果想开启也可以,这个没有范围,只要内存够用开多大都可行!

评论