У мене є кластер БД Amazon (AWS) Aurora , і з кожним днем його [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 (преміум-класу), і мені так і не вдалося отримати гарне пояснення, чому це так.
Я отримав пропозиції працювати OPTIMIZE TABLE
над таблицями, у яких багато free_space
(на INFORMATION_SCHEMA.TABLES
таблицю), або перевірити довжину історії InnoDB, щоб переконатися, що видалені дані не зберігаються в сегменті відкату (посилання: MVCC ) , і перезапустіть екземпляри, щоб переконатися, що сегмент відкату спорожнено.
Ніхто з них не допоміг.