Ich habe einen Amazon (AWS) Aurora DB-Cluster, der jeden Tag [Billed] Volume Bytes Used
zunimmt.
Ich habe die Größe aller meiner Tabellen (in allen meinen Datenbanken in diesem Cluster) anhand der folgenden INFORMATION_SCHEMA.TABLES
Tabelle überprüft :
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 |
+------------+-------------+------------+
Gesamt: 53 GB
Warum werden mir zu diesem Zeitpunkt fast 75 GB in Rechnung gestellt?
Ich verstehe, dass bereitgestellter Speicherplatz niemals freigegeben werden kann, genauso wie die ibdata-Dateien auf einem normalen MySQL-Server niemals verkleinert werden können. Das ist ok für mich. Dies ist dokumentiert und akzeptabel.
Mein Problem ist, dass der mir in Rechnung gestellte Platz von Tag zu Tag größer wird. Und ich bin sicher, dass ich vorübergehend NICHT 75 GB Speicherplatz benutze. Wenn ich so etwas machen würde, würde ich verstehen. Es ist, als würde der Speicherplatz, den ich freigebe, indem ich Zeilen aus meinen Tabellen lösche oder Tabellen lösche oder sogar Datenbanken lösche, nie wieder verwendet.
Ich habe den AWS (Premium) -Support mehrmals kontaktiert und konnte nie eine gute Erklärung dafür erhalten.
Ich habe Vorschläge erhalten, OPTIMIZE TABLE
die Tabellen auszuführen , für die es viele gibt free_space
(pro INFORMATION_SCHEMA.TABLES
Tabelle), oder die Länge des InnoDB-Verlaufs zu überprüfen, um sicherzustellen, dass gelöschte Daten nicht noch im Rollback-Segment gespeichert sind (Ref: MVCC ). und starten Sie die Instanz (en) neu, um sicherzustellen, dass das Rollback-Segment geleert wird.
Keiner von denen half.