LoginSignup
0
0

RDS AuroraMySQL の VolumeBytesUsed の削減

Posted at

データベースには2GBくらいしかデータが入っていないのに VolumeBytesUsed が130GBもあったため、調査&解消したので、メモを残します

結論

OPTIMIZE TABLE <テーブル名>

上記コマンドを実行し、VolumeBytesUsedが削減された

なぜ VolumeBytesUsed に記録されているデータ容量より多く表示されていたか

VolumeBytesUsed には、記録されているデータ容量以外に、フラグメンテーションによる開放されていないストレージ容量を含んでいる

データの開放余地のあるデータ容量を確認する方法

データベース名:information_schema
テーブル名:tables
の data_free の項目に未開放の容量が記録されている
以下のコマンドで確認可能

SELECT 
    table_schema AS `Database`,
    table_name AS `Table`,
    ROUND(data_free / 1024 / 1024 / 1024, 2) AS `Data_Free_GB`,
    ROUND((data_length + index_length) / 1024 / 1024 / 1024, 2) AS `Data_Used_GB`
FROM 
    information_schema.tables
WHERE
    table_schema NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
ORDER BY 
    data_free DESC

OPTIMIZE TABLE <テーブル名> に関して

data_free が 130GB もあったので時間がかかるかと思ったが、1秒もかからなかった
このコマンドは、テーブルのロックが入るようで、実行は慎重に行う必要がある

0
0
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
0
0