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

Tổng 1741 bài
Cơ sở dữ liệu 29/08/2026 9 phút

Xoá nhầm 900 dòng, hệ thống ghi tiếp 101 dòng — rồi tôi quay ngược về đúng một giây trước tai nạn, mất 2,3 giây

Bản sao lưu hàng đêm chỉ đưa bạn về nửa đêm hôm qua. Khôi phục theo thời điểm đưa bạn về một giây trước khi ai đó gõ nhầm — nhưng chỉ khi bạn đã chuẩn bị trước tai nạn. Tôi chạy đủ quy trình từ đầu đến cuối, và cho thấy đặt mốc sai thì nó im lặng đưa bạn về nhầm chỗ.

Cơ sở dữ liệu 29/08/2026 9 phút

Dữ liệu khớp từng dòng, mọi kiểm tra đều xanh — rồi ngày chuyển đổi, dòng đầu trùng khoá chính ngay

Sao chép luồng sao chép byte; sao chép logic sao chép dòng. Khác biệt đó mở ra thứ cách kia không làm được — chọn từng bảng, chạy giữa hai phiên bản, máy đích ghi được — và mang theo ba chỗ hỏng cách kia không có, trong đó chỗ nguy hiểm nhất im lặng hoàn toàn cho tới đúng lúc bạn chuyển sang.

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

Trang cuối đọc đủ 5 triệu dòng để trả về 20 — và OFFSET còn âm thầm bỏ sót dữ liệu khi có người xoá bài

LIMIT 20 OFFSET 1000 là cách phân trang ai cũng viết đầu tiên: đúng, ngắn, và chậm dần theo số trang — nhưng chậm bao nhiêu thì ít ai đo. Tôi đo, và đo cả một lỗi nghiêm trọng hơn chuyện chậm: OFFSET neo vào vị trí, mà vị trí thì đổi khi dữ liệu đổi.

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

JSONB tốn gấp đôi chỗ, đếm chậm 38 lần, ghi tốn 6,6 lần WAL — và vẫn có đúng một chỗ nó là lựa chọn duy nhất

JSONB rất tiện: không cần ALTER TABLE, thêm trường lúc nào cũng được. Tôi dựng hai bảng cùng dữ liệu — một cột thường, một JSONB — để đo cái giá của sự tiện đó, và tìm ra ranh giới rõ ràng giữa lúc nên dùng và lúc phải trả giá đắt.

Cơ sở dữ liệu 29/08/2026 8 phút

Chỉ mục tôi đinh ninh sẽ thắng lại về gần bét — quy trình 5 bước đưa truy vấn từ 684 ms xuống 208 ms

Năm mươi lăm phần trước đo từng cơ chế riêng lẻ; phần này ghép lại thành một quy trình gỡ truy vấn chậm và chạy trên một sự cố dựng sẵn từ đầu tới cuối. Bất ngờ lớn nhất: chỉ mục bao phủ mà ai cũng nghĩ là nhanh nhất lại tệ thứ nhì, còn chỉ mục nhanh nhất cũng là chỉ mục nhỏ nhất.