Saya menggunakan database MySQL dan menggunakan mesin Ubuntu Linux.
Database saya bernama db_test
, saya melihat bahwa di bawah jalan /var/lib/mysql/db_test
, ada file akhiran dengan .frm
, .MYD
, .MYI
seperti berikut:
/var/lib/mysql/db_test# ls
cars.frm
cars.MYD
cars.MYI
customers.frm
customers.MYD
customers.MYI
departments.frm
departments.MYD
departments.MYI
...
Tampaknya setiap .frm
, .MYD
, .MYI
kelompok file dipetakan dengan satu tabel dalam database.
Saya memiliki dua pertanyaan berikut untuk diajukan:
Apa sebenarnya tiga file itu?
Jika saya membuat direktori baru di bawah path
/var/lib/mysql/
saydb_test_2
, dan menyalin setiap file daridb_test_1
direktori kedb_test_2
, apakah itu juga akan membuat database barudb_test_2
yang memiliki konten (tabel) yang persis sama dengandb_test_1
?
Apakah tindakan memindahkan file database secara fisik ini menghasilkan hasil yang sama seperti tindakan baris perintah berikut:
buang database
db_test_1
keluarbuat database baru
db_test_2
lalu buang
db_test_1
database kembali ke database barudb_test_2
?
Jika demikian, sepertinya memindahkan file jauh lebih cepat daripada menggunakan mysqldump
untuk menyalin basis data (atau untuk mengimpor data dari satu DB ke DB lain di MySQL). Ada pendapat tentang ini?
mysqldump
db saya di bawah 2 detik. Memulihkannya adalah bagian yang lambat, memakan waktu 5-10 menit.Ini akan bekerja untuk MyISAM, tetapi tidak untuk InnoDB. Lihat https://serverfault.com/a/367321/57569
Dari jawaban itu, tentang InnoDB:
sumber