Existem algumas opções de configuração que você deve pensar antes de começar.
Desde que você não esteja usando o myisam, você pode alocar com segurança quase toda (mantenha o suficiente para que o seu sistema operacional funcione confortavelmente e o suficiente para sua max_connections
) sua memória innodb_buffer_pool
. O interessante do InnoDB é que ele lida com quase todo o material de memória por si só, sem a necessidade de separar itens como caches de consulta, buffers de chave etc.
Eu recomendo que você ative innodb_file_per_table
, simplesmente porque torna muito mais fácil navegar no sistema de arquivos e ver quanto espaço as diferentes tabelas e bancos de dados precisam. Você ainda precisará de um arquivo ibdata genérico para uso interno do InnoDB, mas você pode apenas defini-lo como 10M:autoextend
. Não é necessário definir muitos arquivos de dados innodb diferentes com tamanhos pré-alocados.
innodb_log_file_size
e innodb_log_buffer_size
combinado deve ser maior que dez vezes o seu maior objeto de blob, se você tiver muitos objetos grandes. Se não (e não deveria [ 1 , 2 ]), não há realmente nenhuma necessidade de se preocupar muito com isso. Confira o MySQL Performance Blog para obter um relatório detalhado sobre como calcular.
E quando você rodar o MySQL por um tempo, verifique suas configurações com o MySQLTuner ou o MySQL Tuning Primer .
Para um relatório mais detalhado, tente mysqlreport e, para monitoramento ao vivo, verifique mytop .