Uma simples criação de tabela em um dos meus bancos de dados MySQL leva uma eternidade:
mysql> CREATE TABLE blah (id BIGINT UNSIGNED NOT NULL PRIMARY KEY);
Query OK, 0 rows affected (16.58 sec)
A máquina está completamente ociosa:
01:21:26 PM CPU %user %nice %system %iowait %steal %idle
01:21:27 PM all 0.50 0.00 0.21 0.00 0.00 99.29
Alguma idéia de como investigar isso?
EDIT : Seguindo o conselho do DTest , este é o perfil de execução:
mysql> SHOW PROFILE FOR QUERY 1;
+----------------------+----------+
| Status | Duration |
+----------------------+----------+
| starting | 0.000044 |
| checking permissions | 0.000024 |
| creating table | 8.668129 |
| After create | 0.000014 |
| query end | 0.000005 |
| freeing items | 0.000028 |
| logging slow query | 0.000004 |
| logging slow query | 0.000206 |
| cleaning up | 0.000006 |
+----------------------+----------+
mysql
performance
Adam Matan
fonte
fonte
Respostas:
Gostaria de ativar o perfil para ter uma idéia do que leva tanto tempo. Um exemplo usando a CLI do mysql:
Você deve obter uma resposta mais ou menos assim:
fonte
CPU
,BLOCK IO
etc. que podem ajudá-lo no estágio 'criando tabela'.