Cơ sở dữ liệu 22/09/2026 5 phút

HOT update trong PostgreSQL: cập nhật một dòng mà không đụng index

HOT (Heap-Only Tuple) cho UPDATE tạo phiên bản mới ngay trong cùng trang, không cập nhật index nào — nếu không đổi cột được index và trang còn chỗ. Đo thật: update cột không index đạt 100 phần trăm HOT giữ index nguyên, update cột có index 0 phần trăm HOT làm index phình. PostgreSQL 16.

Cơ sở dữ liệu 22/09/2026 5 phút

fillfactor trong PostgreSQL: chừa chỗ trong trang để HOT hoạt động

fillfactor chừa phần trăm chỗ trống trong mỗi trang khi INSERT, để phiên bản UPDATE mới ở lại cùng trang và HOT phát huy. Đo thật: fillfactor 100 cho 0 phần trăm HOT và phình 6 lần, fillfactor 70 cho 72 phần trăm HOT chỉ phình 2,4 lần. Cách chọn giá trị theo tải ghi. PostgreSQL 16.

Lập trình 22/09/2026 6 phút

HOT update và index-only scan: hai tối ưu MVCC mà fillfactor và index che phủ mở khóa

UPDATE trong PostgreSQL thường phải ghi lại mọi index — trừ khi là HOT update. Bài này đo thật trên pg-lab: với fillfactor mặc định 100, cập nhật cột không-index vẫn cho 0 HOT (trang đầy); hạ xuống 70 thì 4.368/10.000 là HOT (không ghi index). Và index-only scan cho Heap Fetches=0 khi query chỉ cần cột trong index, giảm I/O rõ rệt.