Um dump de uma base de dados de produção pode facilmente atingir dezenas de gigabytes. No momento em que tenta abri-lo num editor de texto normal, a ventoinha do seu Mac dispara, aparece a bola de praia e, por fim, a aplicação encerra — às vezes levando consigo trabalho não guardado noutras janelas.
Porque é que os editores se engasgam com dumps grandes
O VS Code, o TextEdit, o Sublime Text e afins foram concebidos para carregar o ficheiro inteiro para a memória, de modo a poderem deslocar-se, pesquisar e realçar instantaneamente. Isso é ótimo para um ficheiro fonte de 2 MB. Para um dump de 40 GB significa que o editor tenta alocar 40 GB (mais a sobrecarga das suas estruturas de dados internas) na RAM.
O seu Mac tem 16 ou 32 GB. Muito antes de o ficheiro estar totalmente carregado, o sistema fica sem memória física, começa a usar swap no disco e trava por completo. A maioria dos editores também recusa logo à partida: o VS Code limita os ficheiros a cerca de 50 MB para o editor completo e passa para um modo reduzido, o TextEdit simplesmente bloqueia e o Sublime aloca memória até crashar. Mesmo que consiga abrir o ficheiro, o realce de sintaxe e a pesquisa voltam a percorrer gigabytes a cada tecla premida.
O problema central: estas ferramentas assumem acesso aleatório a todo o documento. Um dump não precisa disso — é uma lista sequencial de instruções. Basta percorrê-lo em streaming.
A via da linha de comandos
As ferramentas Unix do seu Mac já funcionam em streaming, por isso nunca carregam o ficheiro inteiro. São o clássico primeiro recurso:
# Espreitar as primeiras e as últimas linhas sem abrir o ficheiro inteiro head -n 50 dump.sql tail -n 50 dump.sql # Dividir o dump em blocos de 100 MB com os nomes part_aa, part_ab, ... split -b 100m dump.sql part_ # Extrair o bloco de uma tabela entre dois marcadores sed -n '/CREATE TABLE `users`/,/UNLOCK TABLES/p' dump.sql > users.sql
Isto funciona, mas é frágil e trabalhoso. O split -b corta em fronteiras de bytes em bruto, por isso vai fatiar mesmo pelo meio de uma instrução INSERT — os blocos resultantes não são, por si só, SQL válido. O truque do intervalo do sed depende dos marcadores exatos que uma determinada ferramenta de dump gera; mude a versão do MySQL ou passe para PostgreSQL e o padrão deixa de corresponder. E nada disto lhe dá uma visão do que está de facto dentro do ficheiro — está a adivinhar qual é a tabela de 30 GB antes de a poder sequer visar.
Abri-lo e filtrá-lo com o DumpCleaner
O DumpCleaner foi feito exatamente para este tamanho de ficheiro. Percorre o dump em streaming como a linha de comandos, mas compreende a estrutura do SQL, por isso obtém uma lista de tabelas real e uma saída segura e ciente das instruções:
- Arraste o ficheiro para dentro. O DumpCleaner abre o dump percorrendo-o em blocos de ~1 MB — um ficheiro de 50 GB abre com cerca de 50 MB de RAM, por isso nada congela.
- Veja todas as tabelas. Analisa o dump e lista cada tabela com o seu tamanho, para que perceba de imediato qual está a inchar o ficheiro.
- Desmarque o que não precisa. Desmarque as gigantescas tabelas de log, sessões ou analytics. O DumpCleaner mantém as instruções inteiras — sem INSERTs cortados a meio.
- Exporte. Escreva um novo ficheiro
.sqlmais pequeno que finalmente abre e importa sem problemas. O seu ficheiro original nunca é modificado.
Como processa dumps de 50 GB e maiores com memória constante, não tem de pensar de todo na RAM do seu Mac. E como lê a origem e escreve numa saída separada, o dump com que começou fica exatamente como estava.
Abra dumps que o seu editor não consegue
O DumpCleaner percorre dumps SQL de qualquer tamanho com memória constante — sem crash, sem swap, sem esperas. Arraste um ficheiro de 50 GB, elimine as tabelas de que não precisa e exporte um mais pequeno. Aplicação nativa para macOS e iPadOS, compra única.
Descarregar na App StorePerguntas frequentes
Que tamanho de dump SQL é que o DumpCleaner consegue processar?
Não há limite fixo. Processa o ficheiro como um fluxo em pequenos blocos, por isso dumps de 50 GB e maiores funcionam como os pequenos — o tamanho é limitado pelo seu disco, não pela sua RAM.
O DumpCleaner carrega o ficheiro inteiro para a RAM?
Não. Ao contrário de um editor de texto, lê o dump em pequenos blocos e mantém a memória mais ou menos constante, à volta de 50 MB, quer o ficheiro tenha 200 MB ou 50 GB.
Posso dividir um dump por tabela?
Sim. Em vez de o split cortar cegamente em fronteiras de bytes, o DumpCleaner compreende a estrutura das tabelas. Desmarque as tabelas que não quer e exporte um ficheiro limpo apenas com as que mantém.
O DumpCleaner modifica o meu ficheiro original?
Não. O dump de origem é apenas lido — o DumpCleaner escreve sempre um novo ficheiro, por isso o seu original permanece intacto.
Deixe de lutar com o seu editor
Arraste o dump enorme, elimine as tabelas de que não precisa e exporte um ficheiro que abre mesmo. O DumpCleaner lida com qualquer tamanho com memória constante.
Descarregar na App Store