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

Một bộ đếm 32 bit tiêu 5.053 số mỗi giây — 4,9 ngày là cạn, và khi cạn PostgreSQL từ chối mọi lệnh ghi

Đo tốc độ tiêu số hiệu giao dịch trong PostgreSQL: pgbench tám kết nối ăn 5.053 XID mỗi giây, đủ cạn 2,1 tỷ trong 4,9 ngày. Vì sao autovacuum chống-tràn-số không tắt được, và vì sao bảng lưu trữ tĩnh — chứ không phải bảng ghi nhiều — mới là bảng nguy hiểm.

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

FOR UPDATE hứa 'mọi dòng tôi khoá đều khớp' — nhưng không hứa 'tôi khoá mọi dòng khớp', và cỡ lô đúng nhanh gấp 48 lần

Đo hàng đợi công việc trong PostgreSQL: FOR UPDATE đọc lại dòng sau khi chờ được khoá — và sự bất đối xứng của việc đọc lại đó là gốc của nhiều lỗi đua tranh. Kèm con số: cỡ lô 100 nhanh gấp 48 lần cỡ lô 1, chỉ mục một phần nhỏ hơn 375 lần, và một lời cảnh báo phổ biến tôi không dựng lại được.

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

Thêm một điều kiện WHERE đúng, ước lượng tệ đi 66 lần — bộ lập lịch nhân hai xác suất như thể chúng không liên quan

Đo bộ lập lịch PostgreSQL làm việc với số liệu cũ: ước lượng 1 dòng trong khi thực tế 500.000, và một lớp bảo vệ bí mật thường cứu nó. Rồi tới kiểu sai mà ANALYZE không bao giờ chữa được — giả định các cột độc lập — và một câu lệnh sửa từ sai 66,7 lần xuống đúng.

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

10 tiến trình cùng khởi động một cron, chỉ 1 chạy — nhưng hai cái bẫy khiến nó lặng lẽ ngừng hoạt động

Advisory lock là khoá không gắn với dòng nào: 10 bản sao ứng dụng cùng khởi động một công việc định kỳ, chỉ 1 chạy, không cần bảng phối hợp. Nó không rẻ hơn khoá hàng, và có hai cái bẫy — băm tên gây va chạm, và pool kết nối giữ khoá — mà cả hai đều hỏng trong im lặng.

Cơ sở dữ liệu 04/11/2025 8 phút

Chỉ mục GIN tìm từ hiếm nhanh gấp 754 lần — nhưng tìm từ phổ biến còn chậm hơn cả không có chỉ mục

Đo trên 500.000 bài tiếng Việt: GIN nhanh 754 lần khi từ khoá hiếm, chậm hơn cả LIKE khi từ khoá phổ biến. Và cách xử lý ba chuyện riêng của tiếng Việt: không có bộ tách từ, tìm không dấu, và bẫy IMMUTABLE khi đánh chỉ mục unaccent.