Mysql Dump

Da Emigar.
Versione del 9 giu 2026 alle 14:53 di WikiSysop (discussione | contributi) (→‎Character set e collation)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

Creazione Dump

Dump dei dati di un singolo database

mysqldump --no-autocommit --hex-blob --single-transaction --quick --flush-logs --set-gtid-purged=OFF --log-error=output.log --result-file=output.sql --skip-lock-tables ${DB}

Se si aggiunge --no-create-info non vengono generate le DDL delle tabelle

Se si aggiunge --no-data vengono generate solo le DDL senza le insert dei dati


--disable-keys disabilita indici prima di importare e abilita indici dopo import, utile per velocizzare

--add-locks esegue lock table prima di importare, velocizza

--no-autocommit non usa autocommit ma start transaction e commit esplicito a fine di ogni tabella

--extended-insert insert di più righe nello stesso statement, velocizza

--users esporta definizioni utenti e privilegi

--single-transaction consistenza di lettura del db tramite transazione, evita lock sul database sorgente

--default-character-set imposta il characterset del dump

--no-set-names e --skip-set-charset evitano che le create tables portino il charset del database sorgente, utile se si vuole migrare charset

Import del Dump

mysql --database=${DB} --batch < output.sql > import.log


Character set e collation

 select schema_name,default_collation_name,default_character_set_name from information_schema.schemata;

Convertire le tabelle al nuovo codeset:

select concat('alter table ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ;') 
from information_schema.TABLES where TABLE_SCHEMA='mio_schema' and table_collation='latin1_swedish_ci';

Grandezza degli schemi

SELECT 
   table_schema AS 'Schema',
   ROUND(SUM(data_length + index_length) / (1024 * 1024), 2) AS 'Dimensione (MB)'
FROM 
   information_schema.TABLES
GROUP BY 
   table_schema
ORDER BY 
   SUM(data_length + index_length) DESC;