[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