2010-01-24 22 views

Trả lời

28

Cơ sở dữ liệu sử dụng MVCC để tách các giao dịch khỏi nhau cần phải định kỳ quét các bảng để xóa các bản sao lỗi thời của các hàng. Trong MVCC, khi một hàng được cập nhật hoặc bị xóa, nó không thể được tái chế ngay lập tức vì có thể có các giao dịch đang hoạt động vẫn có thể thấy phiên bản cũ của hàng. Thay vì kiểm tra nếu đó là trường hợp, mà có thể là khá tốn kém, hàng cũ được giả định để giữ liên quan. Quá trình khai hoang không gian được hoãn lại cho đến khi bảng được hút bụi, tùy thuộc vào cơ sở dữ liệu, có thể được khởi động tự động hoặc rõ ràng.

0

Rất giống với việc chống phân mảnh hệ thống tệp. Thông tin thêm về số PGSQL docs.

+2

Chống phân mảnh không phải là về việc khôi phục dung lượng. Đó là về sắp xếp lại dữ liệu để giảm phân mảnh. –

1

'vacuumdb' có trong MySQL, sqlite và PostgreSQL. Trong Postgres, vacuumdb xác định không gian bị chiếm bởi các hàng đã xóa và liệt kê nó để sử dụng trong tương lai. 'chân không đầy đủ' thực hiện kiểm tra toàn diện hơn và di chuyển các bản ghi vào không gian mới được tạo ra.

Các vấn đề liên quan