[pgsql-vn:6] chức năng VACUUM của PostgreSQL
bocap
bocap at postgresql.vn
Sat Aug 26 13:35:06 EDT 2017
Hi,
Hoàn thành bài viết về chức năng VACUUM của PostgreSQL.
Mời mọi người tham khảo và cho ý kiến.
https://www.postgresql.vn/blog/vacuum
--- trích dẫn ---
VACUUM và chức năng autovacuum
Tại sao PostgreSQL cần VACUUM ?
1. Dung lượng đĩa cứng có thể full
Khác với các RDBMS khác (như MySQL),
khi người dùng chạy lệnh DELETE hay UPDATE, PostgreSQL không xoá dữ liệu
cũ đi luôn mà chỉ đánh dấu "đó là dữ liệu đã bị xoá".
Nên nếu liên tục
INSERT/DELETE hoặc UPDATE dữ liệu mà không có cơ chế xoá dữ liệu dư thừa
thì dung lượng ổ cứng tăng dẫn đến full.
2. Lỗi (dữ liệu bị vô hiệu) khi Wraparound Transaction ID
PostgreSQL sử
dụng 32 bit Transaction ID (XID) để quản lý transaction. Mỗi một record
dữ liệu đều có thông tin về XID. Khi dữ liệu được tham chiếu PostgreSQL
sử dụng thông tin XID này so sánh với XID hiện tại để đánh giá dữ liệu
này có hữu hiệu không. Dữ liệu đang tham chiếu có XID lớn hơn XID hiện
tại là dữ liệu không hữu hiệu. Khi sử dụng hết 32 bit XID (khoảng 4 tỷ
transactions), để sử dụng tiếp XID sẽ được reset về ban đầu (0). Nếu
không có cơ chế chỉnh lại XID trong data thì mỗi lần reset XID, dữ liệu
hiện tại sẽ trống trơn (dữ liệu hiện tại luôn có XID lớn hơn XID đã
reset (0)).
...
---------------
Xin cảm ơn
—
Together we work better
Cộng đồng PostgreSQL Việt Nam
More information about the pgsql-vn
mailing list