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.

2312 bài viết · Website
Lập trình Go 22/09/2026 10 phút

Batch insert trong Go: vì sao chèn từng dòng chậm gấp trăm lần

Chèn N dòng bằng N lệnh Exec là N vòng đi-về mạng, mỗi vòng trả giá độ trễ cố định. Nút thắt là SỐ round-trip, không phải tốc độ chèn một dòng. Đo thật trong Go: chèn 2000 dòng từng cái mất 2.6s (2000 round-trip); multi-row INSERT gộp lô 200 chỉ 14ms (10 round-trip) — nhanh 193 lần.

Cơ sở dữ liệu 22/09/2026 5 phút

Mảng vs bảng con trong PostgreSQL: gọn nhẹ đổi lấy toàn vẹn

Lưu danh sách bằng cột mảng int[] hay bảng con chuẩn hóa với khóa ngoại? Đo thật: mảng gọn hơn 2 lần, tìm chứa giá trị nhanh hơn với index GIN tí hon, khỏi JOIN. Nhưng mảng không có khóa ngoại nên chấp nhận cả giá trị không tồn tại. Chọn theo nhu cầu toàn vẹn. PostgreSQL 16.

Lập trình Go 22/09/2026 10 phút

Plugin architecture trong Go: package plugin (.so) vs registry, và vì sao Go ít nạp động

Go có hai lối làm plugin: package plugin nạp .so lúc chạy, và registry pattern biên dịch tĩnh tự đăng ký qua init(). Đo thật trong Go 1.23: nạp .so thành công nhưng ràng buộc khắc nghiệt (chỉ Linux/macOS, cùng phiên bản), còn registry cho một binary tĩnh gọn và di động — lý do đa số Go chọn nó.

Cơ sở dữ liệu 22/09/2026 5 phút

Extended statistics (CREATE STATISTICS): dạy planner biết các cột tương quan nhau

Planner giả định các cột độc lập và nhân xác suất — nên với cột tương quan, nó ước lượng sai vài lần. CREATE STATISTICS khai báo mối liên hệ. Đo thật: ước lượng từ thiếu 3 lần thành khớp, và số nhóm GROUP BY từ 18 về đúng 6. PostgreSQL 16.