Go 웹 API 애플리케이션에서는 다양한 기능 내에서 데이터베이스 작업을 수행하는 것이 일반적입니다. 일반적으로 각 함수는 데이터베이스에 대한 연결을 열고 원하는 작업을 실행한 다음 연결을 닫습니다. 그러나 이 접근 방식은 비효율적이고 리소스 낭비가 될 수 있습니다.
더 효율적인 접근 방식은 애플리케이션이 시작될 때(또는 처음 요구할 때) 단일 데이터베이스 연결을 설정하고 애플리케이션 전체에서 이를 재사용하는 것입니다. 이렇게 하면 연결을 여러 번 열고 닫을 필요가 없어져 데이터베이스 오버헤드가 줄어들고 성능이 향상됩니다.
이 접근 방식을 구현하려면 패키지 init() 함수에서 또는 다음과 같은 경우에 sql.DB 인스턴스를 한 번 생성하면 됩니다. 응용 프로그램이 초기화됩니다. 그런 다음 이 인스턴스를 데이터베이스에 액세스해야 하는 함수에 매개변수로 전달할 수 있습니다. 또는 sql.DB 인스턴스를 전역 변수로 만들어 모든 함수에 액세스할 수 있도록 할 수 있습니다.
sql.Open() 설명서에 따르면
The returned DB is safe for concurrent use by multiple goroutines and maintains its own pool of idle connections. Thus, the Open function should be called just once. It is rarely necessary to close a DB.
데이터베이스 연결이 유효하면 연결을 연 후 DB.Ping()을 사용할 수 있습니다.
func init() { var err error db, err = sql.Open("yourdriver", "yourDs") if err != nil { log.Fatal("Invalid DB config:", err) } if err = db.Ping(); err != nil { log.Fatal("DB unreachable:", err) } }
이 접근 방식을 따르면 과도한 데이터베이스를 피할 수 있습니다. 연결을 강화하고 Go 웹 API 애플리케이션의 효율성과 확장성을 향상시킵니다.
위 내용은 My Go 웹 애플리케이션에서 데이터베이스 연결을 효율적으로 관리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!