J'ai un cluster Amazon (AWS) Aurora DB, et chaque jour, il [Billed] Volume Bytes Used
augmente.
J'ai vérifié la taille de toutes mes tables (dans toutes mes bases de données sur ce cluster) en utilisant la INFORMATION_SCHEMA.TABLES
table:
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 |
+------------+-------------+------------+
Total: 53 Go
Alors pourquoi un I facturé près de 75 Go en ce moment?
Je comprends que l'espace provisionné ne peut jamais être libéré, de la même manière que les fichiers ibdata sur un serveur MySQL standard ne peuvent jamais rétrécir; Je suis d'accord avec ça. Ceci est documenté et acceptable.
Mon problème est que chaque jour, l'espace que je facture est augmenté. Et je suis sûr que je n'utilise PAS 75 Go d'espace temporairement. Si je devais faire quelque chose comme ça, je comprendrais. C'est comme si l'espace de stockage que je libérais, en supprimant des lignes de mes tables, ou en supprimant des tables, ou même en supprimant des bases de données, n'était jamais réutilisé.
J'ai contacté le support AWS (premium) plusieurs fois et je n'ai jamais pu obtenir une bonne explication sur la raison.
J'ai reçu des suggestions pour exécuter OPTIMIZE TABLE
sur les tables sur lesquelles il y en a beaucoup free_space
(par INFORMATION_SCHEMA.TABLES
table), ou pour vérifier la longueur de l'historique InnoDB, pour vous assurer que les données supprimées ne sont pas encore conservées dans le segment d'annulation (réf: MVCC ) et redémarrez les instances pour vous assurer que le segment d'annulation est vidé.
Aucun de ceux-là n'a aidé.