Apabila bekerja dengan gorouti HTTP dalam Go, adalah penting untuk mengoptimumkan prestasi dengan berkongsi sambungan pangkalan data. Artikel ini menunjukkan cara untuk mewujudkan dan berkongsi sambungan MySQL antara berbilang pengendali HTTP.
Dalam Go, pakej pangkalan data/sql mengendalikan pengumpulan sambungan secara automatik. Apabila memanggil sql.Open(...), kolam sambungan dibuat dan bukannya sambungan tunggal. Ini bermakna pakej pangkalan data/sql akan secara automatik mendapatkan sambungan daripada kumpulan jika semua sambungan sudah digunakan.
Untuk berkongsi sambungan MySQL dalam gorouti HTTP anda, ikuti ini langkah:
Mulakan Pangkalan Data Sambungan:
Contoh:
db, err := sql.Open("mysql", "root:@/mydb?charset=utf8") if err != nil { log.Fatalf("Error opening database: %v", err) }
Konfigurasikan Pengumpulan Sambungan:
Kongsi Pemegang Sambungan:
Contoh:
var db *sql.DB
Semak Sambungan Pangkalan Data:
Contoh:
err = db.Ping() if err != nil { log.Fatalf("Error opening database connection: %s", err.Error()) }
Gunakan Sambungan dalam Pengendali HTTP:
Contoh:
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) } }
Dengan mengikuti langkah-langkah ini, anda boleh berkongsi sambungan MySQL dengan cekap merentas berbilang goroutin HTTP tanpa menjejaskan prestasi.
Atas ialah kandungan terperinci Bagaimanakah cara saya berkongsi sambungan MySQL merentas berbilang gorouti HTTP dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!