Middle+
What is a connection pool in the database/sql package in Go?
sobes.tech AI
Answer from AI
In the database/sql package in Go, a connection pool is a built-in mechanism for managing a pool of database connections. It allows reusing open connections to avoid creating a new connection for each request, which significantly improves performance and reduces load on the database.
Main features:
- The pool automatically opens and closes connections as needed.
- You can configure the maximum number of open and concurrently used connections using the
SetMaxOpenConnsandSetMaxIdleConnsmethods. - The pool provides thread-safe access to connections.
Example configuration:
db, err := sql.Open("postgres", "connection_string")
if err != nil {
log.Fatal(err)
}
// Maximum of 10 open connections
db.SetMaxOpenConns(10)
// Maximum of 5 idle connections in the pool
db.SetMaxIdleConns(5)
Thus, the connection pool in database/sql helps efficiently manage resources when working with a database.