mysqldump
MySQL dump
mysqldump è l’utility di backup logico inclusa di serie in ogni installazione di MySQL e MariaDB. Produce un file SQL contenente tutte le istruzioni (CREATE TABLE, INSERT) necessarie per ricostruire completamente schema e dati di un database.
Come funziona #
mysqldump si connette al server MySQL e legge le tabelle una alla volta, generando le istruzioni SQL corrispondenti in output. L’operazione è rigorosamente single-threaded: una tabella dopo l’altra, una riga dopo l’altra. Il file prodotto può essere compresso esternamente (gzip, zstd) ma lo strumento stesso non offre compressione nativa.
Con l’opzione --single-transaction, il dump avviene all’interno di una transazione con isolation level REPEATABLE READ, che garantisce una snapshot consistente su tabelle InnoDB senza acquisire lock sulle scritture.
A cosa serve #
mysqldump è lo strumento standard per:
- Backup logico di database di piccole e medie dimensioni
- Migrazioni tra versioni diverse di MySQL
- Export di singole tabelle o database per trasferimento tra ambienti
- Creazione di dump leggibili e ispezionabili manualmente
Quando diventa un problema #
Su database oltre i 10-15 GB, il dump single-threaded diventa un collo di bottiglia. Un database da 60 GB può richiedere 3-4 ore di dump e altrettante di restore. La mancanza di parallelismo è il limite strutturale: non c’è modo di velocizzare il processo se non passando a strumenti come mydumper.