Mam klaster Aurora DB Amazon (AWS) i każdego dnia jego liczba [Billed] Volume Bytes Used
rośnie.
Sprawdziłem rozmiar wszystkich moich tabel (we wszystkich bazach danych w tym klastrze), używając INFORMATION_SCHEMA.TABLES
tabeli:
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 |
+------------+-------------+------------+
Razem: 53 GB
Więc dlaczego naliczam obecnie prawie 75 GB?
Rozumiem, że przydzielonej przestrzeni nigdy nie można zwolnić, w taki sam sposób, w jaki pliki ibdata na zwykłym serwerze MySQL nigdy nie mogą się zmniejszyć; Nie przeszkadza mi to. Jest to udokumentowane i dopuszczalne.
Mój problem polega na tym, że każdego dnia zwiększa się moje miejsce. I jestem pewien, że NIE używam tymczasowo 75 GB miejsca. Gdybym miał zrobić coś takiego, zrozumiałbym. To tak, jakby przestrzeń dyskowa, którą zwalniam, usuwając wiersze z moich tabel lub usuwając tabele, a nawet usuwając bazy danych, nigdy nie jest ponownie używana.
Wielokrotnie kontaktowałem się z obsługą AWS (premium) i nigdy nie byłem w stanie uzyskać dobrego wyjaśnienia, dlaczego tak jest.
Otrzymałem sugestie, aby uruchomić OPTIMIZE TABLE
na tabelach, na których jest dużo free_space
(na INFORMATION_SCHEMA.TABLES
tabelę), lub sprawdzić długość historii InnoDB, aby upewnić się, że usunięte dane nie są nadal przechowywane w segmencie wycofywania (ref: MVCC ) i zrestartuj instancję (y), aby upewnić się, że segment wycofania został opróżniony.
Żaden z nich nie pomógł.