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

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

Cột mảng nhỏ hơn bảng phụ 4 lần — nhưng tra một thẻ chậm 57 lần, và không khoá ngoại nào chặn được thẻ ma

PostgreSQL cho một cột chứa cả mảng hoặc cả bản ghi con, tránh được một bảng phụ và một phép nối. Tôi đo cái giá của việc tránh đó bằng bài toán gắn thẻ cho bài viết — gọn hơn thật, nhưng mất Index Only Scan, mất khoá ngoại, và dữ liệu mồ côi tích lại mà không gì phát hiện.

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

Chuyển sang máy dự phòng mất 0,52 giây, không mất giao dịch nào — đưa máy cũ về lại mất 78,9 giây vì một dòng cấu hình quên bật

Máy dự phòng chỉ có giá trị nếu bạn chuyển sang được. Tôi giết một máy chính đang ghi dở, thăng cấp máy dự phòng, và đo mọi thứ — kể cả phần khó hơn nhiều: đưa máy cũ quay lại mà không tạo ra hai máy chính cùng nhận ghi.

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

Câu 0,007 ms mỗi lần ngốn gấp ba lần thời gian máy chủ so với câu 118 ms — và vì sao bạn sẽ tối ưu nhầm

Sau năm mươi ba phần đo từng cơ chế, phần này đo cách tìm ra chỗ nào đáng đo. Kết quả đầu tiên đã đủ giật mình: cách xếp hạng phổ biến nhất — theo thời gian mỗi lần — dẫn thẳng tới việc tối ưu nhầm truy vấn, bỏ qua đúng câu đang chiếm nhiều tài nguyên nhất.

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

Khôi phục xong, đủ mọi bảng mọi dòng — và không ai đăng nhập được: bốn thứ pg_dump lặng lẽ bỏ quên

Sao lưu là việc ai cũng làm và ít ai đo. Tôi đo năm cách trên cùng một cơ sở dữ liệu, và chỉ ra bốn thứ mà cách phổ biến nhất không hề lấy — trong đó có mật khẩu của mọi tài khoản, thứ chỉ lộ ra khi bạn khôi phục và không ai vào được.

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

Cách 'kiểm tra rồi ghi' chạy đúng mọi lần tôi thử — rồi sáu tiến trình cùng chạy, nó sai cả 25/25 vòng

'Có thì cập nhật, chưa có thì chèn' là thao tác quen thuộc nhất mà SQL chuẩn không có cú pháp riêng. Cách viết tay chạy đúng khi bạn thử một luồng và hỏng khi có nhiều tiến trình. Tôi đo cả hai — cùng ba cái bẫy và ba tính năng ít dùng của ON CONFLICT.