J'utilise la base de données MySQL et j'utilise une machine Ubuntu Linux.
Ma base de données nommée db_test
, je remarque que sous chemin /var/lib/mysql/db_test
, il y a des fichiers suffixe avec .frm
, .MYD
, .MYI
comme suit:
/var/lib/mysql/db_test# ls
cars.frm
cars.MYD
cars.MYI
customers.frm
customers.MYD
customers.MYI
departments.frm
departments.MYD
departments.MYI
...
Semble chacun .frm
, .MYD
, .MYI
groupe de fichiers mis en correspondance avec une table dans la base de données.
J'ai deux questions à poser:
Que font exactement les trois fichiers?
Si je crée un nouveau répertoire sous path
/var/lib/mysql/
saydb_test_2
, et que je copie chaque fichier dudb_test_1
répertoire dansdb_test_2
, cela créera-t-il également une nouvelle base de donnéesdb_test_2
qui a exactement le même contenu (tables) quedb_test_1
le sien?
Cette action de déplacement de fichiers de base de données physique crée-t-elle le même résultat que les actions de ligne de commande suivantes:
vider la base de données
db_test_1
surcréer une nouvelle base de données
db_test_2
puis vider la
db_test_1
base de données dans la nouvelle base de donnéesdb_test_2
?
Si c'est le cas, il semble que le déplacement de fichiers soit beaucoup plus rapide que celui utilisé mysqldump
pour copier des bases de données (ou pour importer des données d'une base de données vers une autre base de données dans MySQL). Des opinions à ce sujet?
mysqldump
mon db en moins de 2 secondes. La restauration est la partie lente, qui prend 5 à 10 minutes.Cela fonctionnera pour MyISAM, mais pas pour InnoDB. Voir /server//a/367321/57569
De cette réponse, à propos d'InnoDB:
la source