Eu recentemente atualizei meu servidor MySQL de 5.1 para 5.6 (rodando no CentOS 6.x). Desde a atualização, quando tento executar determinadas tarefas de tabela, as consultas demoram muito tempo. Isso está realmente colocando um amortecedor em minhas iterações do ciclo de desenvolvimento, porque quando um teste demora 1 segundo para ser executado, ele leva 1-2 minutos para ser executado e isso realmente mata a minha produtividade.
Consultas que estão demorando muito tempo:
Eu tenho a mesma versão do MySQL (5.6.15) instalada no meu Mac local. Eu estou trabalhando especificamente em 6 tabelas no momento e por isso quero truncar as tabelas com freqüência. Quando eu truncar no meu Mac local, a consulta demora 21 ms (totalmente razoável). Quando eu truncar as mesmas tabelas no meu servidor CentOS, são necessários 8,5 segundos. As tabelas são todas InnoDB.
Eu tentei com outras tabelas no mesmo banco de dados no meu Mac local versus meu servidor CentOS e a extrema lentidão persiste para essas outras tabelas. Então, eu tentei um banco de dados completamente diferente e a extrema lentidão também persiste (restaurar um dos meus dbs no meu Mac local leva 25 segundos, mas no servidor CentOS leva 4 minutos e 14 segundos).
Como a versão do MySQL é a mesma, imaginei que talvez fosse uma diferença de configuração. Eu exportei o "show variables"; consulta no CentOS e Mac local e as únicas diferenças (além de coisas como caminhos ou nomes de arquivos de log) são:
innodb_use_native_aio OFF // local Mac
innodb_use_native_aio ON // CentOS
lower_case_file_system ON // local Mac
lower_case_file_system OFF // CentOS
lower_case_table_names 2 // local Mac
lower_case_table_names 0 // CentOS
have_symlink YES // local Mac
have_symlink DISABLED // CentOS