Bài viết mới nhất

Tổng 1741 bài
Cơ sở dữ liệu 22/09/2026 5 phút

work_mem trong PostgreSQL: RAM cho sort và hash, và cạm bẫy per-connection

work_mem là RAM tối đa cho mỗi thao tác sort hoặc hash. Đo thật: sort 2 triệu dòng tràn 35 MB ra đĩa với work_mem nhỏ, làm trong RAM khi đủ; hash join chia 16 batch. Nhưng nó là per-operation per-connection nên đặt quá lớn có thể hết bộ nhớ. Cách tính an toàn. PostgreSQL 16.

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

shared_buffers trong PostgreSQL: đặt bao nhiêu, và vì sao không phải càng nhiều càng tốt

shared_buffers là bộ nhớ đệm chính của PostgreSQL, mặc định 128MB thường quá nhỏ. Đo thật: bảng lớn hơn nó chỉ đạt 37 phần trăm cache hit, nhưng tập nóng vẫn ở lại. Quy tắc 25 phần trăm RAM và vì sao đặt lớn hơn lãng phí vì double buffering với OS cache. PostgreSQL 16.

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

pg_repack trong PostgreSQL: dọn bloat online mà không khóa bảng

pg_repack thu nhỏ bảng bloat như VACUUM FULL nhưng chạy online — đọc và ghi không bị chặn. Đo thật: repack một bảng 1894 MB xuống 631 MB trong khi một SELECT đồng thời vẫn trả về 2,67 triệu dòng, thay vì bị hủy như với VACUUM FULL. Cơ chế năm bước và lưu ý production. 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.

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 6 phút

VACUUM FULL trong PostgreSQL: khi nào cần và ba rủi ro phải biết

VACUUM FULL thu nhỏ file bảng thật, nhưng đo thật: nó giữ khóa ACCESS EXCLUSIVE chặn cả đọc lẫn ghi (SELECT bị hủy vì lock timeout), cần thêm gấp đôi đĩa tạm, và downtime tỉ lệ kích thước bảng. Khi nào dùng, và vì sao production 24/7 nên dùng pg_repack. PostgreSQL 16.