Go で HTTP ゴルーチンを使用する場合、データベース接続を共有してパフォーマンスを最適化することが不可欠です。この記事では、複数の HTTP ハンドラー間で MySQL 接続を確立して共有する方法を説明します。
Go では、データベース/SQL パッケージが接続プーリングを自動的に処理します。 sql.Open(...) を呼び出すと、単一の接続ではなく接続プールが作成されます。これは、すべての接続がすでに使用されている場合、データベース/SQL パッケージがプールから接続を自動的に取得することを意味します。
HTTP ゴルーチンで MySQL 接続を共有するには、次の手順に従います。手順:
データベース接続の初期化:
例:
db, err := sql.Open("mysql", "root:@/mydb?charset=utf8") if err != nil { log.Fatalf("Error opening database: %v", err) }
接続プーリングの構成:
接続ハンドルを共有します:
例:
var db *sql.DB
データベース接続の確認:
例:
err = db.Ping() if err != nil { log.Fatalf("Error opening database connection: %s", err.Error()) }
HTTP ハンドラーで接続を使用する:
例:
func HomeHandler(w http.ResponseWriter, r *http.Request) { var msg string err := db.QueryRow("SELECT msg FROM hello WHERE page=?", "home").Scan(&msg) if err != nil { fmt.Fprintf(w, "Database Error!") } else { fmt.Fprintf(w, msg) } }
次の手順に従うことで、次のことができます。パフォーマンスを損なうことなく、複数の HTTP ゴルーチン間で MySQL 接続を効率的に共有します。
以上がGo の複数の HTTP ゴルーチン間で MySQL 接続を共有するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。