Como eu nunca havia visto um benchmark para mostrar as diferenças entre, abrir uma conexão no inÃcio do programa e utilizá-la como dependência e, abrir uma nova conexão a cada chamada, resolvi fazê-la.
Embora a maioria das pessoas que converso saberem a resposta correta, não sei se, assim como eu, elas têm a ideia de quão grande é a diferença entre essas abordagens.
Mas antes de ver o resultado, mostrarei como construà o benchmark.
Conexão & Dados
Bem simples, para abrir a conexão sqlite3, criei uma função chamada Open.
package connections
import (
"database/sql"
_ "github.com/mattn/go-sqlite3"
)
// Open a connection with a sqlite3 database
func Open() (*sql.DB, error) {
return sql.Open("sqlite3", "test.db")
}
Leia mais » 