MySQL の InnoDB では、断片化(フラグメンテーション)という現象が発生する。 フラグメンテーションが発生すると、クエリ処理が遅くなったり、サーバーの容量をたくさん使い問題が起こる。フラグメンテーションを解消するには最適化をおこなう。 断片化についてと最適化の方法に関するメモ。 断片化(フラグメンテーション)とは 断片化とは、ディスク上のインデックスページの物理的な順序がページ上のレコードのインデックス順序とかけ離れているか、またはインデックスに割り当てられた 64 ページのブロック内に未使用のページが多数存在することを示します。 MySQL 5.6 リファレンスマニュアル – 14.10.4 テーブルのデフラグ DB で DELETE クエリを実行すると、すぐに物理的な削除は行われない。削除フラグ的なのがつけられる論理削除となる。 なので、このレコードがあった場所には穴が空いた
![[MySQL] 断片化した InnoDB テーブルを最適化する](https://cdn-ak-scissors.b.st-hatena.com/image/square/72bb966e3fde47e5ed7ad30c2867bc86ca340580/height=288;version=1;width=512/https%3A%2F%2Fagohack.com%2Fwp%2Fwp-content%2Fuploads%2F2019%2F12%2Flogo-mysql-176.png)