常见问题:ECJia到家:到家系统性能优化之MySQL
跳到导航
跳到搜索
注意事项
- 建议服务器配置在 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