常见问题:ECJia到家:到家系统性能优化之MySQL

来自ECJiaWiki
跳转至: 导航搜索

注意事项

  • 建议服务器配置在 2 核 4G 5M 以上才需要进行,低于该配置的服务器进行 MySQL 优化效果甚微

如何修改

Step1:找到MySQL配置文件

如果是使用运维工作平台安装服务器环境的话,则配置文件如下
  • 如果是使用运维工作平台安装服务器环境的话,则配置文件如下

/etc/my.cnf

  • 如果不是,则使用以下命令查找 MySQL 配置文件

find / -name "my.cnf"

Step2:修改参数

修改建议如下
MySQL参数 参数说明 内存2-4G建议配置 内存4-8G建议配置 内存8-16G建议配置
key_buffer_size 用于索引的缓冲区大小 256MB 380MB 512MB
query_cache_size 查询缓存,不开启请设为0 128MB 190MB 256MB
tmp_table_size 临时表缓存大小 380MB 512MB 1024MB
innodb_buffer_pool_size Innodb缓冲区大小 380MB 512MB 1024MB
innodb_log_buffer_size Innodb日志缓冲区大小 64MB 64MB 64MB
sort_buffer_size 连接数, 每个线程排序的缓冲大小 760KB 1024KB 2048KB
read_buffer_size 连接数, 读入缓冲区大小 760KB 1024KB 2048KB
read_rnd_buffer_size 连接数, 随机读取缓冲区大小 512KB 760KB 1024KB
join_buffer_size 连接数, 关联表缓存大小 2048KB 2048KB 4096KB
binlog_cache_size 连接数, 二进制日志缓存大小(4096的倍数) 64KB 128KB 190KB
thread_cache_size 线程池大小 96 128 190
table_open_cache 表缓存(最大不要超过2048) 190 380 1024
max_connections 最大连接数 200 300 400


举例

  • 如果你的服务器运行内存为 2-4G,则找到/etc/my.cnf后,需要修改的参数如下,其他无需修改:
[mysqld]
max_connections = 200     
table_open_cache = 190     
binlog_cache_size = 64K   
tmp_table_size = 380M  

read_buffer_size = 760k   
read_rnd_buffer_size = 512K 
join_buffer_size = 2048K   
thread_cache_size = 96    
query_cache_size = 128M 
innodb_buffer_pool_size = 380M   
innodb_log_buffer_size = 64M   

[myisamchk]
key_buffer_size = 256M    
sort_buffer_size = 760k
  • * 如果你的服务器运行内存为 4-8G,则找到/etc/my.cnf后,需要修改的参数如下,其他无需修改:
[mysqld]
max_connections = 300     
table_open_cache = 380     
binlog_cache_size = 64K   
tmp_table_size = 512M  

read_buffer_size = 1024k   
read_rnd_buffer_size = 760K 
join_buffer_size = 2048K   
thread_cache_size = 128    
query_cache_size = 190M 
innodb_buffer_pool_size = 512M   
innodb_log_buffer_size = 64M   

[myisamchk]
key_buffer_size = 380M    
sort_buffer_size = 1024k