Este é um tema difícil. Não pode ser respondido aqui, todo o livros foi escrito sobre isso. Eu recomendo fazer seu innodb_buffer_pool_size grande o suficiente. Se você estiver usando tabelas myisam, verifique key_buffer_size. Também table_cache e max_connections devem ser considerados.
Aqui está algo que pode ajudá-lo:
EDITAR:
Como @ drew010 disse que é importante considerar o tipo de uso que o DB possui. O tunning para um DB pesado lido é muito diferente de uma gravação pesada. Além disso, você pode considerar outras estratégias. Como o Memcached, bancos de dados nosql, etc.