私はAmazon(AWS)Aurora DBクラスターを持っていますが、毎日[Billed] Volume Bytes Used
増加しています。
テーブルを使用して(そのクラスター上のすべてのデータベース内の)すべてのテーブルのサイズを確認しましたINFORMATION_SCHEMA.TABLES
。
SELECT ROUND(SUM(data_length)/1024/1024/1024) AS data_in_gb, ROUND(SUM(index_length)/1024/1024/1024) AS index_in_gb, ROUND(SUM(data_free)/1024/1024/1024) AS free_in_gb FROM INFORMATION_SCHEMA.TABLES;
+------------+-------------+------------+
| data_in_gb | index_in_gb | free_in_gb |
+------------+-------------+------------+
| 30 | 4 | 19 |
+------------+-------------+------------+
合計:53GB
それで、なぜ私が現在ほぼ75GBを請求されているのですか?
通常のMySQLサーバー上のibdataファイルが縮小できないのと同じように、プロビジョニングされたスペースを解放できないことを理解しています。私はそれで大丈夫です。これは文書化されており、許容されます。
私の問題は、毎日、請求されるスペースが増えることです。そして、私は一時的に75GBのスペースを使用していないと確信しています。そのようなことをしたら、理解できます。テーブルから行を削除したり、テーブルを削除したり、データベースを削除したりすることで解放している記憶域が再利用されることはないかのようです。
AWS(プレミアム)サポートに何度も問い合わせたことがありますが、その理由について十分な説明がありませんでした。(テーブルごとに)たくさんあるテーブルで
実行するか、またはInnoDB履歴の長さをチェックして、削除されたデータがロールバックセグメントにまだ保持されていないことを確認するための提案を受けました(参照:MVCC) 、インスタンスを再起動して、ロールバックセグメントが空であることを確認します。
それらのどれも助けませんでした。OPTIMIZE TABLE
free_space
INFORMATION_SCHEMA.TABLES