rsync を使用して MySQL データをバックアップしようとしています。テーブルは MyISAM ストレージ エンジンを使用します。
私の期待は、最初の rsync の後、その後の rsync が非常に高速になることでした。テーブル データが変更された場合、操作が大幅に遅くなることが判明しました。
実際のデータを含む 989 MB の MYD ファイルで実験を行いました。
テスト 1 - 変更されていないデータの再コピー
rsync -a orig.MYD copy.MYD
- 予想通り時間がかかる
rsync -a orig.MYD copy.MYD
- 瞬時 - スピードアップは数百万単位
テスト 2 - わずかに変更されたデータの再コピー
rsync -a orig.MYD copy.MYD
- 予想通り時間がかかる
UPDATE table SET counter = counter + 1 WHERE id = 12345
rsync -a orig.MYD copy.MYD
- 元のコピーと同じくらい時間がかかります!
何を与える?小さな変更をコピーするだけで rsync が永遠にかかるのはなぜですか?
編集: 実際、テスト 2 の 2 番目の rsync は最初の rsync と同じくらい時間がかかります。rsync は明らかにファイル全体を再度コピーしています。
編集:ローカルからローカルにコピーすると、 --whole-file が暗示されます。--no-whole-file を使用しても、パフォーマンスは依然としてひどいものです。