У меня есть кластер 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 |
+------------+-------------+------------+
Всего: 53 ГБ
Так почему в настоящее время мне выставляют счет почти на 75 ГБ?
Я понимаю, что выделенное пространство никогда не может быть освобождено, так же, как файлы ibdata на обычном сервере MySQL никогда не могут уменьшаться; Я в порядке с этим. Это задокументировано и приемлемо.
Моя проблема в том, что с каждым днем пространство, которое мне выставляют, увеличивается. И я уверен, что я НЕ использую 75 ГБ пространства временно. Если бы я сделал что-то подобное, я бы понял. Это как если бы пространство памяти, которое я освобождаю, удаляя строки из моих таблиц, или удаляя таблицы, или даже удаляя базы данных, никогда не используется повторно.
Я несколько раз обращался в службу поддержки AWS (premium) и так и не смог получить хорошее объяснение, почему это так.
Я получил предложения запустить OPTIMIZE TABLE
таблицы, в которых их много free_space
(по INFORMATION_SCHEMA.TABLES
таблице), или проверить длину истории InnoDB, чтобы убедиться, что удаленные данные все еще не сохраняются в сегменте отката (ссылка: MVCC ). и перезапустите экземпляр (ы), чтобы убедиться, что сегмент отката очищен.
Никто из них не помог.