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

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

Trên máy 16 lõi, thông lượng đạt đỉnh ở đúng 16 kết nối — lên 256 thì độ trễ tăng 20 lần mà chẳng phục vụ thêm ai

max_connections = 500 là cấu hình phổ biến, và nó thường sai. Tôi đo xem một máy chủ thật sự phục vụ được bao nhiêu kết nối trước khi thêm nữa chỉ làm mọi thứ tệ đi — kèm ba chi phí của một kết nối mà ít ai cộng đủ.

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

Một trigger có thân hàm rỗng làm chèn chậm 35% — và một trigger khác nuốt mất nửa dữ liệu, không báo lỗi

Trigger là đoạn mã chạy tự động mỗi khi dữ liệu thay đổi: tiện vì không thể quên, khó vì nó chạy vô hình. Tôi đo chi phí của nó và dựng lại bốn tình huống nó cho kết quả ngoài dự đoán — gồm một chỗ làm mất nửa dữ liệu mà lệnh vẫn báo thành công.

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

300 client dùng chung 17 kết nối — và work_mem của người này lặng lẽ rò sang truy vấn của người khác

Phần trước đo được thông lượng PostgreSQL đạt đỉnh ở đúng số lõi CPU. PgBouncer là câu trả lời khi ứng dụng có nhiều máy chủ — nó nhồi 300 client vào 17 kết nối. Nhưng chế độ transaction có một cái giá không phải hiệu năng: trạng thái phiên của một client rò sang client khác.

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

Nạp một triệu dòng: COPY nhanh gấp 112 lần chèn từng dòng — nhưng bước nhảy lớn nhất không nằm ở COPY

Nạp dữ liệu là việc ai cũng phải làm và ít ai đo. Tôi nạp cùng một triệu dòng bằng năm cách, và tìm ra rằng cách nhanh nhất không phải cách đáng khuyên nhất — cú tăng 40 lần nằm ở gộp lô, thứ chạy được ở mọi nơi COPY không dùng được.

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

CHECK gần như miễn phí, nhưng xoá một dòng cha mà quên chỉ mục thì chậm 120 lần

Ràng buộc là cách rẻ nhất để dữ liệu không hỏng, nhưng 'rẻ' là từ định tính. Tôi gán số cho từng loại: CHECK và NOT NULL gần như miễn phí, khoá ngoại làm chèn chậm 6,2 lần — và cái bẫy lớn nhất là chi phí của nó hiện ra ở một thao tác bạn không ngờ tới.

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

Cùng bài top-3 mỗi nhân viên: SQL mất 78 ms, kéo về ứng dụng tự tính mất 1.070 ms và 25 MB qua mạng

Window function giải lớp bài toán GROUP BY không giải nổi: xếp hạng trong nhóm, so với dòng trước, cộng dồn. Tôi đo chi phí thật của chúng, so với LATERAL và với cách kéo dữ liệu về ứng dụng tự tính — và bất ngờ là LATERAL nhanh gần gấp đôi window function.