İçeriğe geç

DB Bağlantısı Kapatılmamış (ARCH5084)

Anahtar go.performance.db-connection-not-closed · Önem error · Kategori performance

Bir sorgudan dönen *sql.Rows kapatılmazsa altındaki bağlantı havuza geri dönmez ve havuz tükenir. defer rows.Close() ile kapatın.

func ids(db *sql.DB) ([]int, error) {
rows, err := db.Query("SELECT id FROM users")
if err != nil {
return nil, err
}
var out []int
for rows.Next() {
var id int
rows.Scan(&id)
out = append(out, id)
}
return out, nil
}
func ids(db *sql.DB) ([]int, error) {
rows, err := db.Query("SELECT id FROM users")
if err != nil {
return nil, err
}
defer rows.Close()
var out []int
for rows.Next() {
var id int
rows.Scan(&id)
out = append(out, id)
}
return out, nil
}

*sql.Rows veya bağlantıyı açtıktan sonra defer rows.Close() ekleyin.