Sobes.tech
Middle+

O que é um connection pool no pacote database/sql em Go?

sobes.tech IA

Resposta da IA

No pacote database/sql em Go, o connection pool é um mecanismo incorporado para gerir o grupo de conexões à base de dados. Permite reutilizar conexões abertas, evitando criar uma nova conexão para cada pedido, o que melhora significativamente o desempenho e reduz a carga na base de dados.

Principais características:

  • O pool abre e fecha conexões automaticamente conforme necessário.
  • Pode configurar o número máximo de conexões abertas e em uso simultâneo através dos métodos SetMaxOpenConns e SetMaxIdleConns.
  • O pool garante acesso seguro às conexões em ambientes concorrentes.

Exemplo de configuração:

db, err := sql.Open("postgres", "connection_string")
if err != nil {
    log.Fatal(err)
}
// Máximo de 10 conexões abertas
db.SetMaxOpenConns(10)
// Máximo de 5 conexões inativas no pool
db.SetMaxIdleConns(5)

Assim, o connection pool em database/sql ajuda a gerir recursos de forma eficiente ao trabalhar com bases de dados.