Estou fazendo:
type db.sql | mysql
e a saída do console não é nada. Vejo o arquivo ibdata1 crescendo, mas não sei para quantos GB ele crescerá.
Eu gostaria de ver um indicador de progresso de algum tipo. Alguma ideia?
Estou fazendo:
type db.sql | mysql
e a saída do console não é nada. Vejo o arquivo ibdata1 crescendo, mas não sei para quantos GB ele crescerá.
Eu gostaria de ver um indicador de progresso de algum tipo. Alguma ideia?
Eu tenho uma consulta maluca para você !!!
Isso informará o tamanho de cada tabela InnoDB.
Basta executá-lo periodicamente durante o carregamento do script SQL. Se a tabela de script SQL bloquear a tabela durante o carregamento, você não verá números até que a tabela esteja totalmente carregada.
De uma chance !!!
Em sistemas unix-a-like, como o Linux, há várias opções. O Pipe Viewer (pv, disponível aqui ) é o que costumo usar e está convenientemente presente na maioria dos repositórios de pacotes padrão da distro (
aptitude install pv
no Ubuntu).Mas o uso de
type
, em vez decat
implicar que você está usando o Windows e não tenho conhecimento de nenhuma dessas ferramentas para esse ambiente, embora, sem dúvida, umapv
ou uma das ferramentas que Gaius mencionou possa ser compilada facilmente em cygwin .Esteja ciente de que isso está medindo a quantidade do arquivo enviado para o mysql, não a quantidade de trabalho que o mysql realmente fez, e a quantidade do arquivo enviado para o mysql pode não mapear com precisão a quantidade de trabalho que o mysql fez e ainda está para Faz. Um enorme INSERT de várias linhas (como
INSERT <table> VALUES(<row 1 content>), (<row 2 content>), ..., (<row X content>);
em vez deINSERT <table> VALUES(<row 1 content>); INSERT <table> VALUES (<row 2 content>); ...
) não será processado até que seja completamente recebido, portanto, se você estiver executando o script em um link de rede lento, verá algum progresso à medida que os dados são enviados e, em seguida, uma pausa enquanto é realmente processado (então se o script inteiro for uma longa instrução de inserção de várias linhas, o medidor de progresso pode ir direto para 100%, ou próximo disso, e ficar lá por muito tempo).Como outra sugestão, você pode adicionar instruções de saída em cada parte do script, como:
e quebrar INSERTs de bits com mensagens de vez em quando, bem como mensagens antes e/ou depois:
o resultado dessas instruções SELECT extras deve ser gravado em stdout (ou seja, seu console) à medida que o script é processado, para que você tenha uma ideia de até onde ele foi.
Eu acredito que você deve ser capaz de fazer isso com a barra de progresso da linha de comando , por exemplo:
Ou, alternativamente , catenteie com progress , por exemplo: