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.

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 Go 22/09/2026 9 phút

Core dump và phân tích sự cố trong Go: mổ xẻ tiến trình đã chết

Panic trace cho biết crash ở đâu nhưng mất trạng thái biến khi tiến trình chết. Core dump là ảnh chụp toàn bộ bộ nhớ lúc crash — mổ xẻ nó bằng dlv core để điều tra sau sự cố (post-mortem). Đo thật trong Go: bật GOTRACEBACK=crash sinh core dump 40 MB, dlv core dựng lại ngăn xếp tới đúng dòng gây lỗi dù tiến trình đã chết.

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

Mutex profile trong Go: tìm khóa nào là nút thắt tranh chấp, thứ CPU profile không thấy

Benchmark cho biết chậm, nhưng không cho biết khóa nào nghẽn. Mutex profile đo tổng thời gian goroutine phải chờ khóa. Đo thật: 10 goroutine tranh một mutex nóng tích lũy 20,8 giây chờ, 100% quy về đúng khóa đó, khóa nguội bị loại. Cách bật, phân tích, và sửa. Go 1.23.

Web 22/09/2026 6 phút

Header bảo mật HTTP: HSTS, CSP, X-Frame-Options — mỗi dòng chặn một kiểu tấn công

Một dòng header có thể chặn cả một lớp tấn công. Bài này xem các header bảo mật THẬT mà chính blog này gửi, rồi dùng Chromium thật nhúng hai iframe — một trang có X-Frame-Options DENY, một không — để thấy trình duyệt thực sự từ chối hiển thị trang DENY: 'Refused to display ... X-Frame-Options to deny'. Không phải mô tả, là trình duyệt thi hành.