私はMySQLデータベースとUbuntu Linuxシステムを使用しています。
私のデータベース名はdb_test
、次のようにパスに/var/lib/mysql/db_test
サフィックスが付いたいくつかの.frm
ファイルがあることを確認しました。.MYD
.MYI
/var/lib/mysql/db_test# ls
cars.frm
cars.MYD
cars.MYI
customers.frm
customers.MYD
customers.MYI
departments.frm
departments.MYD
departments.MYI
...
.frm
各、、、ファイルグループがデータベースのテーブルにマップされているようです.MYD
。.MYI
次の2つの質問があります。
これらの3つのファイルは正確に何をしますか?
/var/lib/mysql/
sayというパスの下に新しいディレクトリを作成し、db_test_2
ディレクトリdb_test_1
内のすべてのファイルをにコピーすると、まったく同じ内容(テーブル)を含む新しいデータベースもdb_test_2
作成されますか?db_test_2
db_test_1
この物理データベースファイルの移動操作は、次のコマンドライン操作と同じ結果を生成しますか?
db_test_1
データベースダンプ新しいデータベースの作成
db_test_2
その後、
db_test_1
データベースを新しいデータベースに再ダンプしますかdb_test_2
?
mysqldump
もしそうなら、ファイルを移動する方がデータベースをコピーするよりもはるかに速いようです。これについて意見がありますか?
ベストアンサー1
AFAIRでは、.frmはデータベーステーブル構造を記述する記述ファイル、.MYDはデータを含むファイル、.MYIはインデックスを含むファイルです。
はい、コピーははるかに高速になります。しかし、問題があります。原子的ではありません。負荷が高いと、コピーされたファイルは一貫性がなく、まったく破損する可能性があります。特にInnoDBのような、より「インテリジェントな」エンジンを使用している場合は、さらにそうです。
編集する:psこのファイルは安全にコピーできますが、その前にmysqlサーバーを停止する必要があります。