如何在my.cnf文件中设置query_cache_size和join_buffer_size?

如何在my.cnf文件中设置query_cache_size和join_buffer_size?

过去两天我一直在监控我的服务器,发现 60% 的临时表存储在 hhd 上,而不是内存中。我还运行了 MySQL Performance Tuning Primer 脚本,它建议我设置 query_cache_size。

现在,要做到这一点,我相信我需要在 my.cnf 中设置 query_cache_size 和 join_buffer_size

不幸的是,我没有编辑 my.cnf 文件的经验,所以我希望有人能在这里帮助我。如何我是否应该设置它,什么我应该将其设置为?

my.cnf 当前:

[mysqld]
set-variable = max_connections=500
safe-show-database
log_slow_queries = /var/log/mysql/log-slow-queries.log
slow_query_log = 1
long_query_time = 2
log-queries-not-using-indexes

答案1

配置的可能值(和其他信息)可在MySQL 参考指南。因此,例如,如果我想添加您指定的两个参数,您的/etc/my.cnf配置将类似于以下内容:

[mysqld]
set-variable = max_connections=500
safe-show-database
log_slow_queries = /var/log/mysql/log-slow-queries.log
slow_query_log = 1
long_query_time = 2
log-queries-not-using-indexes

# (default: 0)
thread_cache_size = 4
# Replaces table_cache in 5.1.3 (default: 64)
table_open_cache = 128
# (default: 0), disables cache
query_cache_size = 8388608

我使用的两个值是 MySQL 在未指定时使用的默认值。请务必在此处指定您自己的值!

更新:MySQL 的技术资源上也有一篇很棒的文章理解缓存

相关内容