Tôi có một cụm Aurora DB của Amazon (AWS) và mỗi ngày, nó [Billed] Volume Bytes Used
đang tăng lên.
Tôi đã kiểm tra kích thước của tất cả các bảng của mình (trong tất cả các cơ sở dữ liệu của tôi trên cụm đó) bằng INFORMATION_SCHEMA.TABLES
bảng:
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 |
+------------+-------------+------------+
Tổng cộng: 53GB
Vậy tại sao một tôi được thanh toán gần 75GB tại thời điểm này?
Tôi hiểu rằng không gian được cung cấp không bao giờ có thể được giải phóng, giống như cách các tệp ibdata trên máy chủ MySQL thông thường không bao giờ có thể thu hẹp; Tôi ok với điều đó. Đây là tài liệu, và chấp nhận được.
Vấn đề của tôi là mỗi ngày, không gian tôi được lập hóa đơn tăng lên. Và tôi chắc chắn rằng tôi KHÔNG sử dụng 75GB dung lượng tạm thời. Nếu tôi làm điều gì đó như thế, tôi sẽ hiểu. Như thể không gian lưu trữ mà tôi đang giải phóng, bằng cách xóa các hàng khỏi bảng của tôi hoặc bỏ bảng hoặc thậm chí bỏ cơ sở dữ liệu, sẽ không bao giờ được sử dụng lại.
Tôi đã liên hệ với bộ phận hỗ trợ AWS (cao cấp) nhiều lần và không bao giờ có thể nhận được lời giải thích tốt về lý do đó.
Tôi đã nhận được đề xuất để chạy OPTIMIZE TABLE
trên các bảng có nhiều free_space
(trên mỗi INFORMATION_SCHEMA.TABLES
bảng) hoặc để kiểm tra độ dài lịch sử của InnoDB, để đảm bảo dữ liệu đã xóa vẫn không được giữ trong phân đoạn rollback (ref: MVCC ) và khởi động lại (các) thể hiện để đảm bảo phân đoạn rollback được làm trống.
Không ai trong số họ giúp đỡ.