Web API アプリでは現在、各関数が Postgres データベースへの独自の接続を確立しているため、リソースの使用率とパフォーマンス。このアプローチを改善して、アプリケーションの効率を高めることができます。
アプリケーションの起動時に単一の sql.DB インスタンスを初期化する方法をお勧めします。このインスタンスは、データベース アクセスを必要とする関数に引数として渡すことも、グローバル変数として使用できるようにすることもできます。 sql.Open() ドキュメントによると、「返された DB は複数の goroutine による同時使用に対して安全であり、アイドル接続の独自のプールを維持します。」
sql.DB インスタンスを初期化するには、 package init() function:
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() 呼び出しは、データベースがアクセス可能であることを確認します。
この戦略に従うことで、Web API アプリはデータベース接続をより効率的に処理し、リソース使用率を最小限に抑え、パフォーマンスを向上させることができます。
以上がMy Go Web API でデータベース接続を効率的に管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。