>백엔드 개발 >Golang >My Go Web API에서 데이터베이스 연결을 효율적으로 관리하려면 어떻게 해야 합니까?

My Go Web API에서 데이터베이스 연결을 효율적으로 관리하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-01 14:27:22872검색

How Can I Efficiently Manage Database Connections in My Go Web API?

Go 애플리케이션에서 효율적으로 데이터베이스 연결 관리

웹 API 앱에서 각 기능은 현재 Postgres 데이터베이스에 대한 자체 연결을 설정하므로 리소스 활용 및 성능. 이 접근 방식을 개선하여 애플리케이션 효율성을 높일 수 있습니다.

선호되는 방법은 애플리케이션 시작 시 단일 sql.DB 인스턴스를 초기화하는 것입니다. 이 인스턴스는 데이터베이스 액세스가 필요한 함수에 인수로 전달되거나 전역 변수로 사용 가능하게 될 수 있습니다. sql.Open() 문서에 따르면 "반환된 DB는 여러 고루틴에서 동시에 사용하기에 안전하며 자체 유휴 연결 풀을 유지 관리합니다."

sql.DB 인스턴스를 초기화하려면 다음을 사용할 수 있습니다. package init() 함수:

package main

import (
    "fmt"
    "log"

    "github.com/lib/pq"
)

var db *sql.DB

func init() {
    var err error
    dbURI := "user=postgres password=password dbname=api_dev sslmode=disable"
    db, err = sql.Open("postgres", dbURI)
    if err != nil {
        log.Fatal("Invalid DB config:", err)
    }
    if err = db.Ping(); err != nil {
        log.Fatal("DB unreachable:", err)
    }
}

func main() {
    fmt.Println("Initialized DB connection successfully")
}

이 접근 방식은 다중 연결 설정에 따른 오버헤드를 제거하고 효율적인 리소스 관리를 보장합니다. db.Ping() 호출은 데이터베이스에 액세스할 수 있는지 확인합니다.

이 전략을 따르면 웹 API 앱이 데이터베이스 연결을 보다 효율적으로 처리하여 리소스 활용을 최소화하고 성능을 향상시킬 수 있습니다.

위 내용은 My Go Web API에서 데이터베이스 연결을 효율적으로 관리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.