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) } }
이 단계를 따르면 여러 데이터베이스에서 MySQL 연결을 효율적으로 공유할 수 있습니다. 성능 저하 없는 HTTP 고루틴.
위 내용은 Go의 여러 HTTP 고루틴에서 MySQL 연결을 어떻게 공유하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!