プログラマーの雑レポート

脳死で読めるコードを書きたい

MySQL レコードをDELETEしても、ディスク容量は変わらないすべらない話

またもや先輩に教えていただいたので、ちょっと調べてみる。(「すべらない話」は関係ないよ)

ディスク容量が変わらない話はこのあたりで記載されている。

なるほど。delete したとしても、 MySQL上では、deleteされた状態を記録するだけで容量的には残っている。という感じか。(バグなんだ) 大規模ソーシャルゲーム運用で経験した MySQL(RDS) のストレージ管理で押さえておくべき勘所 #AWS - Qiita

2021-09-10 MySQL のストレージ容量は DELETE しただけでは空かない | TTIL

じゃあどうやったら確保(=解放)できる?

(悲報)基本的にやらない方がいい。

テーブルの再作成みたいなことしなきゃいけないんだなぁ。。

使用されていないディスク領域を解放するには、ダンプしてからリストアするしかない。 innodb_file_per_tableが有効な時にディスク容量を開放するには | Yakst

いったんデータベースをダンプしてファイルを削除、そしてダンプから再作成 MySQLで一度レコードが増えたら不要なレコードを消してもディスク容量が減らない

データ増えてきたら後で消せばいっか。は後々痛い目見そうなので、気をつけた方が良さそうですね。。