Trung BìnhGolang iconGolang

Database connection trong Go best practices?

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).

Xem toàn bộ Golang cùng filter theo level & chủ đề con.

Mở danh sách Golang