Mysql
 sql >> Database >  >> RDS >> Mysql

Database di importazione MySQL ma ignora la tabella specifica

La risposta accettata da RandomSeed potrebbe richiedere molto tempo! L'importazione del tavolo (solo per eliminarlo in un secondo momento) potrebbe essere molto dispendioso a seconda delle dimensioni.

Per un file creato utilizzando

mysqldump -u user -ppasswd --opt --routines DBname > DBdump.sql

Attualmente ottengo un file di circa 7 GB, di cui 6 GB sono dati per una tabella di registro che non "ho bisogno" di essere lì; ricaricare questo file richiede un paio d'ore. Se ho bisogno di ricaricare (per scopi di sviluppo, o se mai richiesto per un ripristino live) sfoglio il file in questo modo:

sed '/INSERT INTO `TABLE_TO_SKIP`/d' DBdump.sql > reduced.sql

E ricarica con:

mysql -u user -ppasswd DBname < reduced.sql

Questo mi dà un database completo, con la tabella "indesiderata" creata ma vuota. Se davvero non vuoi affatto le tabelle, rilascia semplicemente le tabelle vuote al termine del caricamento.

Per più tabelle potresti fare qualcosa del genere:

sed '/INSERT INTO `TABLE1_TO_SKIP`/d' DBdump.sql | \
sed '/INSERT INTO `TABLE2_TO_SKIP`/d' | \
sed '/INSERT INTO `TABLE3_TO_SKIP`/d' > reduced.sql

C'è un "gotcha" - fai attenzione alle procedure nel tuo dump che potrebbero contenere "INSERT INTO TABLE_TO_SKIP".