Quando você executa um mysqldump de um único banco de dados, todas as tabelas são despejadas em ordem alfabética.
Naturalmente, a recarga do mysqldump em um banco de dados também estaria em ordem alfabética.
Você poderia apenas fazer uma SHOW PROCESSLIST; e descubra a conexão com o banco de dados executando o mysqldump. Quando o despejo é recarregado, a conexão com o banco de dados desaparece.
Se você quiser saber quais tabelas estão no arquivo de despejo, execute isso em foobar.sql
cat foobar.sql | grep "^CREATE TABLE" | awk '{print $3}'
ATUALIZAÇÃO 02-05-2012 13:53 EDT
Desculpe por não perceber que existe apenas uma tabela.
Se a tabela for MyISAM, a única maneira de monitorar é do ponto de vista do SO. O motivo? A tabela está bloqueada para gravação durante o recarregamento. O que procura? O tamanho dos arquivos .MYD
e .MYI
. Obviamente, você precisa comparar isso com o tamanho da tabela anterior no outro servidor de banco de dados do qual você importou.
Se a tabela for InnoDB e você tiver innodb_file_per_table ativado, a única maneira de monitorar é do ponto de vista do SO. O motivo? A tabela está bloqueada para gravação durante o recarregamento. O que procura? O tamanho do .ibd
arquivo. Obviamente, você precisa comparar isso com o tamanho da tabela anterior no outro servidor de banco de dados do qual você importou.
Se a tabela for InnoDB e você tiver innodb_file_per_table desativado, nem mesmo o ponto de vista do sistema operacional pode ajudar.
ATUALIZAÇÃO 02-05-2012 13:56 EDT
Abordei algo como isso no ano passado: Como obtenho% progresso para "tipo db.sql | mysql"
ATUALIZAÇÃO 02-05-2012 14:09 EDT
Como um mysqldump padrão grava a tabela como esta:
LOCK TABLES `a` WRITE;
/*!40000 ALTER TABLE `a` DISABLE KEYS */;
INSERT INTO `a` VALUES (123),(451),(199),(0),(23);
/*!40000 ALTER TABLE `a` ENABLE KEYS */;
UNLOCK TABLES;
então, não há como obter progresso com o mysql até que o bloqueio da tabela seja liberado.
Se você pode obter LOCK TABLES
e UNLOCK TABLES
comentar fora do arquivo de despejo ...
- se a tabela for MyISAM, SELECT COUNT (*) funcionaria
- se a tabela for InnoDB, SELECT COUNT (*) provavelmente diminuiria / interromperia o carregamento até a contagem ser concluída