sql.Open() trả connection pool (không phải single connection).
- Set:
db.SetMaxOpenConns(25),db.SetMaxIdleConns(5),db.SetConnMaxLifetime(5*time.Minute). - KHÔNG
defer db.Close()mỗi request vì sql.DB là long-lived pool — chỉ close khi app shutdown. - Prepared statements cho queries lặp lại.
- Context timeout cho queries:
db.QueryContext(ctx, query).