4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?