Como definir query_cache_size e join_buffer_size no arquivo my.cnf?

2

Tenho monitorado meu servidor nos últimos dois dias e percebi que 60% das minhas tabelas temporárias estão armazenadas no hhd em vez de na memória. Também executei o script MySQL Performance Tuning Primer que me aconselhou a definir o query_cache_size.

Agora, para fazer isso, acredito que precisarei definir o query_cache_size e join_buffer_size em my.cnf

Infelizmente, eu não tenho nenhuma experiência com a edição do arquivo my.cnf, então espero que alguém possa me ajudar aqui. Como eu configuro e para que devo configurá-lo?

my.cnf atualmente:

[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
    
por LittleSnitch 21.11.2010 / 17:01

1 resposta

1

Os possíveis valores (e outras informações) para a configuração estão disponíveis no Guia de referência do MySQL . Portanto, por exemplo, se eu quisesse adicionar os dois parâmetros especificados, seu /etc/my.cnf config seria semelhante ao seguinte:

[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

Os dois valores que usei foram os padrões que o MySQL usa se não forem especificados. Não se esqueça de especificar seus próprios valores aqui!

ATUALIZAÇÃO: os recursos técnicos do MySQL também têm um ótimo artigo sobre entendimento do cache .

    
por 21.11.2010 / 17:15