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

Connection pool tự viết trong Go: tái dùng tài nguyên tốn kém bằng buffered channel

Connection pool giữ sẵn các kết nối và tái dùng thay vì mở/đóng liên tục. Đo thật trong Go 1.23: một pool dựng bằng buffered channel tái dùng 3 kết nối cho 10 lần dùng, có timeout khi cạn, và nhanh hơn tạo mới mỗi lần hàng nghìn lần khi kết nối tốn 5ms bắt tay.

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

Tinh chỉnh connection pool của database/sql trong Go: ba nút quyết định thông lượng

sql.DB không phải một kết nối — nó là một pool. Hiểu sai ba nút MaxOpenConns, MaxIdleConns, ConnMaxLifetime khiến app hoặc nghẽn cổ chai hoặc giết chết DB. Đo thật trong Go: cùng 1000 truy vấn, throughput đi từ 174 lên 8497 truy vấn mỗi giây khi chỉnh pool, và WaitCount về 0 khi đủ kết nối.