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.
Hatalı
Bölüm başlığı “Hatalı”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}Düzeltme
Bölüm başlığı “Düzeltme”*sql.Rows veya bağlantıyı açtıktan sonra defer rows.Close() ekleyin.