MySQL InnoDB调优

时间:2012-04-04 00:50:40

标签: performance database-performance mysql

在尝试为我的所有InnoDB应用程序环境(mysql DB仍然是MyISAM)配置我的mysqld时,我一直看到这个公式的变量来确定总内存使用量:

key_buffer_size + query_cache_size + tmp_table_size + innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size
+ max_connections * (read_buffer_size + read_rnd_buffer_size + sort_buffer_size + join_buffer_size + binlog_cache_size + thread_stack)

此总和大于我的可用物理内存,可能导致分页。与我的备用服务器(具有更多内存)相比,我当然看到了性能损失。

我正在尝试并且失败,找到哪些变量对InnoDB无用(仅对MyISAM有用),并且可以大大减少以缩小我的总内存分配。

问题,我可以调整哪些配置变量来减少MySQL的总内存分配?

2 个答案:

答案 0 :(得分:0)

您可以尝试Percona的配置向导。这应该是一个好的开始。 Percona人知道他们的MySQL。

警告:它会要求您注册以获得最终结果。

https://tools.percona.com/wizard

您可能需要进行一些基准测试,以针对您的特定负载模式进行调整。

答案 1 :(得分:0)

经过多次检查,并且更加大惊小怪,我发现它并不重要。显然,MySQLd稀疏地分配缓冲区,这意味着如果我不使用MyISAM,那么只会使MyISAM受益的缓冲区不会增长占用大部分物理内存,并且实际上不会分配计算出的“总内存分配”。