J'ai un cluster Amazon (AWS) Aurora DB, et chaque jour, il [Billed] Volume Bytes Usedaugmente.
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.TABLEStable:
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 TABLEsur les tables sur lesquelles il y en a beaucoup free_space(par INFORMATION_SCHEMA.TABLEStable), 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é.
