1. Introdução
MySQL é um sistema de gerenciamento de banco de dados usado por muitos sites e aplicativos. Entre suas ferramentas, o comando mysqldump é especialmente importante ao realizar backups ou migrações de bancos de dados. Em particular, quando você deseja fazer backup apenas de tabelas específicas de um banco de dados grande, esse comando se torna extremamente útil.
Neste artigo, explicaremos detalhadamente como fazer dump de tabelas específicas usando o comando mysqldump. O guia foi elaborado para ser fácil de entender para iniciantes, ao mesmo tempo em que apresenta opções de nível intermediário e técnicas avançadas de uso.
2. Sintaxe Básica do Comando mysqldump
Primeiro, vamos revisar o uso básico do comando mysqldump. Esse comando serve para fazer dump (backup) da estrutura e dos dados de um banco de dados inteiro ou de tabelas específicas.
Sintaxe Básica
Ao especificar o nome de usuário, a senha, o nome do banco de dados e o nome da tabela conforme mostrado abaixo, você pode fazer backup de uma tabela específica.
mysqldump -u username -p database_name table_name > output_file.sql
-u: Especifica o nome de usuário usado para acessar o banco de dados-p: Especifica a senha (você será solicitado a inseri‑la)database_name: O nome do banco de dados a ser dumpadotable_name: A tabela específica a ser dumpada> output_file.sql: Especifica o arquivo de saída
Opções Mais Usadas
--single-transaction: Garante consistência transacional ao fazer backup de tabelas InnoDB--skip-lock-tables: Evita o bloqueio de tabelas durante o backup

3. Como Fazer Dump de Tabelas Específicas
Dump de uma Única Tabela
Para fazer backup apenas de uma tabela específica, indique o nome da tabela após o nome do banco de dados. No exemplo a seguir, apenas a tabela users é dumpada.
mysqldump -u root -p my_database users > users_dump.sql
Esse comando salva a estrutura e os dados da tabela users no banco de dados my_database no arquivo users_dump.sql.
Dump de Múltiplas Tabelas
Se você quiser fazer backup de várias tabelas de uma vez, indique os nomes das tabelas separados por espaços.
mysqldump -u root -p my_database users orders products > multiple_tables_dump.sql
No exemplo acima, as três tabelas users, orders e products são dumpadas simultaneamente.
Dump Usando uma Lista de Tabelas
Ao fazer dump de um grande número de tabelas, especificar manualmente cada nome pode ser trabalhoso. Nesses casos, você pode usar o comando SHOW TABLES ou um script para gerar automaticamente a lista de tabelas a serem dumpadas.
mysql -u root -p my_database -N -e "SHOW TABLES LIKE 'hoge%'" > table_list.txt
mysqldump -u root -p my_database `cat table_list.txt` > partial_dump.sql
Esse método permite fazer backup de forma eficiente apenas das tabelas que correspondem a um padrão especificado.
4. Opções e Uso Avançado
O mysqldump oferece diversas opções que permitem criar backups de forma flexível conforme suas necessidades. Abaixo estão algumas opções para cenários específicos.
Dump Apenas da Estrutura
Se você não precisar dos dados e quiser fazer backup apenas da estrutura da tabela, use a opção --no-data.
mysqldump -u root -p my_database --no-data users > users_structure.sql
Esse comando faz dump apenas da estrutura da tabela users e não inclui nenhum dado.
Dump Apenas dos Dados
Por outro lado, se quiser fazer dump apenas dos dados da tabela, use a opção --no-create-info.
mysqldump -u root -p my_database --no-create-info users > users_data.sql
Esse comando exclui a estrutura da tabela e faz dump apenas dos dados.
Dump de Dados com Base em Condições Específicas
Usando a opção --where, você pode fazer dump apenas dos dados que atendam a condições específicas. Por exemplo, para dumpar somente as linhas onde id é maior que 100, use o comando a seguir:
mysqldump -u root -p my_database users --where="id > 100" > users_filtered_dump.sql
Isso permite extrair e fazer backup apenas dos dados necessários de um banco de dados grande.

5. Exemplos Práticos de Uso
Caso de Uso 1: Fazendo Backup de uma Única Tabela
Por exemplo, se você quiser fazer backup apenas da tabela salary dentro do banco de dados employees, use o comando a seguir:
mysqldump -u root -p employees salary > salary_dump.sql
Caso de Uso 2: Fazendo Backup de Dados com Condições
Para exportar apenas um intervalo específico de dados, use a opção --where. Por exemplo, para fazer backup apenas das linhas onde o id na tabela users é maior que 100:
mysqldump -u root -p my_database users --where="id > 100" > users_partial_dump.sql
6. Notas Importantes e Boas Práticas
Problemas de Bloqueio de Tabelas
Ao usar o mysqldump, as tabelas podem ficar bloqueadas, impedindo que outras operações sejam realizadas. Isso pode ser particularmente problemático em sistemas de produção. Para evitar esse problema, recomenda‑se usar a opção --single-transaction. Para tabelas InnoDB, combiná‑la com a opção --skip-lock-tables aumenta ainda mais a segurança.
Lidando com Grandes Volumes de Dados
Se o seu banco de dados contém uma quantidade muito grande de dados, o processo de dump pode levar bastante tempo. Uma abordagem eficaz é usar o gzip para comprimir o dump em tempo real.
mysqldump -u root -p my_database | gzip > backup_$(date +%Y%m%d).sql.gz
Este comando comprime os dados durante o processo de dump, ajudando a economizar espaço em disco.
7. Conclusão
Neste artigo, explicamos como fazer dump de tabelas específicas usando o comando mysqldump. Cobriram‑se desde o uso básico do comando até dumps condicionais, exportações apenas de estrutura ou apenas de dados, e até técnicas de script eficientes. O mysqldump é uma ferramenta muito poderosa e, quando usada corretamente, permite que você realize backups e migrações de bancos de dados de forma fluida.
No próximo artigo, aprofundaremos em opções mais avançadas do mysqldump e faremos comparações com outras ferramentas de backup.


