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

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.

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

Functional options nâng cao trong Go: closure làm cấu hình, tự validate, tương thích ngược

Functional options dùng closure làm tham số cấu hình, cho API mở rộng mà vẫn tương thích ngược. Đo thật trong Go 1.23: option tự validate và gộp lỗi tại constructor, chậm hơn config struct khoảng 6ns nhưng cùng một cấp phát, và closure không thoát heap khi dùng trực tiếp.