Otimizando Banco de Dados MySQL

O valor total de total_per_thread_buffers não pode exceder o tamanho da sua RAM, e também não pode exceder mais de 2G em máquinas com arquitetura 32bits. O Cálculo é feito pelos seguintes parâmetros:

total_possible_used_memory = server_buffers + total_per_thread_buffers

server_buffers corresponde à:

max_tmp_table_size = max_heap_table_size ou tmp_table_size (o que for menor)

server_buffers = key_buffer_size + max_tmp_table_size + innodb_buffer_pool_size + 
                innodb_additional_mem_pool_size + innodb_log_buffer_size + query_cache_size

total_per_thread_buffers corresponde à:

per_thread_buffers = read_buffer_size + read_rnd_buffer_size + sort_buffer_size + 
                           thread_stack + join_buffer_size

total_per_thread_buffers = per_thread_buffers * max_connections

Consulte o manual do mysql para ter uma noção do valor ideal para cada parâmetro citado acima. Segue um exemplo de configuração em uma máquina com 512M de RAM:

key_buffer_size = 30M
max_heap_table_size = 16M
tmp_table_size = 32M
innodb_buffer_pool_size = 100M
innodb_additional_mem_pool_size = 1M
innodb_log_buffer_size = 1M
query_cache_size = 8M
read_buffer_size = 130K
read_rnd_buffer_size = 256K
sort_buffer_size = 2M
thread_stack = 196K
join_buffer_size = 130K
max_connections = 100