Q

Quản trị viên

Là một lập trình viên yêu công nghệ, thích viết blog để chia sẻ kiến thức, kinh nghiệm lập trình và những điều thú vị trong thế giới tech.

2300 bài viết · Website
Cơ sở dữ liệu 28/08/2026 12 phút

Chỉ mục HASH nhỏ hơn B-tree 8,8 lần với khoá dài — nhưng chỉ cần một câu ORDER BY là nó thành đồ bỏ

Đo HASH, SP-GiST và bloom trên PostgreSQL 16: HASH nhỏ hơn B-tree 8,8 lần với khoá dài vì nó chỉ lưu vân tay 4 byte thay vì cả khoá, nhưng nó chỉ biết dấu bằng — mất thứ tự, mất ràng buộc duy nhất. Và vì sao B-tree vẫn là mặc định đúng sau mười tám phần đo.

Cơ sở dữ liệu 28/08/2026 11 phút

Hai giao dịch khoá hai dòng ngược thứ tự, cả hai đứng hình 2 giây — và một câu lệnh làm hàng đợi nhanh gấp 5,75 lần

Dựng lại deadlock có chủ đích trong PostgreSQL, đo thời gian phát hiện đúng bằng deadlock_timeout, và chỉ ra vì sao SKIP LOCKED làm hàng đợi công việc nhanh gấp 5,75 lần. Kèm cách chặn deadlock triệt để và cách tìm ai đang chặn ai.

Cơ sở dữ liệu 28/08/2026 11 phút

Đổi sang mức cô lập 'an toàn hơn' rồi mất 57% số ghi mà không một dòng lỗi — bốn mức, đo bằng tải thật

Dựng lại từng hiện tượng cô lập giao dịch bằng hai phiên chạy song song trong PostgreSQL: vì sao repeatable read không chặn được lệch ghi, và vì sao nâng lên mức cao mà không viết vòng thử lại làm biến mất 137 trong 480 lần ghi — im lặng.

Cơ sở dữ liệu 28/08/2026 12 phút

Chỉ mục nhỏ hơn B-tree 6.850 lần — nhưng xáo trộn thứ tự dòng một cái là nó chậm hơn cả không có chỉ mục

Đo B-tree, BRIN và GiST trên bảng sự kiện 10 triệu dòng trong PostgreSQL: BRIN chỉ 32 kB, gần như miễn phí lúc ghi, nhưng nó đánh chỉ mục bố cục vật lý chứ không phải dữ liệu — xáo trộn thứ tự dòng là nó chậm 234 lần, và chết hoàn toàn trong im lặng.