LoginSignup
4
4

More than 5 years have passed since last update.

DBバックアップ(mysqldump)の速度改善のためにやっていること

Posted at

DBバックアップがだんだん遅くなってきた!

  • 運用当初は40分で完了していた日時DBバックアップ(全テーブルのmysqldump)
  • 1年ほど運用を続けていくうちに遅くなっていき、最終的に80分かかるようになった

mysqldumpはテーブル全件のselect

  • selectが遅くなっている原因の一つが、テーブルのフラグメント化
  • 主に行の削除で歯抜けが発生し、検索効率が悪くなっている

速くするために「OPTIMIZE TABLE」を実施

OPTIMIZE TABLE テーブル名;
  • OPTIMIZE TABLEはinnoDBで実施すると、全件削除+投入になる
  • delete→insertを毎日繰り返しているようなテーブルに効果が高い

具体的には以下のようにしてます

  • ロックがかかるので、システム稼働中は流せない
  • 全テーブルを5回に分け、システム停止時間帯に実施
  • 01:16:28 ⇒ 00:51:28   25分速くなった!
  • ほっておくとまた遅くなるので、cronで月に一度実施するように設定

※MySQLのバージョンは5.5です

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4