Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL mengimpor database tetapi mengabaikan tabel tertentu

Jawaban yang diterima oleh RandomSeed bisa memakan waktu lama! Mengimpor tabel (hanya untuk dibuang nanti) bisa sangat boros tergantung ukurannya.

Untuk file yang dibuat menggunakan

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

Saat ini saya mendapatkan file sekitar 7GB, 6GB di antaranya adalah data untuk tabel log yang saya tidak 'perlu' ada di sana; memuat ulang file ini membutuhkan waktu beberapa jam. Jika saya perlu memuat ulang (untuk tujuan pengembangan, atau jika diperlukan untuk pemulihan langsung) saya membaca sekilas file sebagai berikut:

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

Dan muat ulang dengan:

mysql -u user -ppasswd DBname < reduced.sql

Ini memberi saya database lengkap, dengan tabel "yang tidak diinginkan" dibuat tetapi kosong. Jika Anda benar-benar tidak menginginkan tabel sama sekali, cukup jatuhkan tabel kosong setelah pemuatan selesai.

Untuk beberapa tabel, Anda dapat melakukan sesuatu seperti ini:

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

Ada 'gotcha' - hati-hati dengan prosedur di dump Anda yang mungkin berisi "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. Tidak dapat menginstal mysqlclient di centos

  2. Sqlite atau MySql? Bagaimana memutuskan?

  3. Bagaimana cara membuat kunci utama mulai dari 1000?

  4. MYSQL - datetime ke detik

  5. Masalah Penyandian Teks MySQL C#