Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Importuj bazę danych MySQL, ale ignoruj ​​konkretną tabelę

Przyjęcie odpowiedzi przez RandomSeed może zająć dużo czasu! Importowanie tabeli (tylko po to, aby ją później upuścić) może być bardzo marnotrawstwem w zależności od rozmiaru.

Dla pliku utworzonego za pomocą

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

Obecnie otrzymuję plik o wielkości około 7 GB, z czego 6 GB to dane dla tabeli dziennika, których „nie potrzebuję” tam; ponowne załadowanie tego pliku zajmuje kilka godzin. Jeśli muszę ponownie załadować (w celach programistycznych lub jeśli jest to wymagane do odzyskiwania na żywo), przeglądam plik w ten sposób:

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

I przeładuj za pomocą:

mysql -u user -ppasswd DBname < reduced.sql

Daje mi to kompletną bazę danych z utworzoną tabelą „niechcianą”, ale pustą. Jeśli naprawdę nie chcesz w ogóle tych tabel, po prostu upuść puste tabele po zakończeniu ładowania.

Dla wielu stołów możesz zrobić coś takiego:

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

JEST 'gotcha' - uważaj na procedury w twoim zrzucie, które mogą zawierać "INSERT INTO TABLE_TO_SKIP".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Adres URL JDBC do konfiguracji MySQL w celu użycia kodowania znaków utf8

  2. Wstaw przy użyciu przygotowanego oświadczenia. Jak automatycznie zwiększyć identyfikator?

  3. Przechowywać pliki obrazów lub adresy URL w bazie danych MySQL? Co jest lepsze?

  4. projektowa baza danych dotycząca atrybutu czasu

  5. Tworzenie tabeli nie powiodło się, a ograniczenie klucza obcego jest niepoprawnie utworzone