Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menggunakan Semula Sambungan DB Postgres Tunggal dalam Go untuk Sisipan Baris yang Cekap?
Menggunakan Semula Sambungan DB Postgres Tunggal dalam Go untuk Sisipan Baris
Dalam bidang operasi pangkalan data, salah satu tugas biasa ialah memasukkan baris ke dalam sebuah meja. Untuk prestasi pangkalan data yang optimum, adalah penting untuk mewujudkan satu sambungan dan menggunakannya semula untuk semua operasi sisipan. Pendekatan ini mengelakkan overhed membuka banyak sambungan dan memastikan interaksi pangkalan data yang cekap.
Isu: Membuka Sambungan DB Berlebihan
Apabila cuba memasukkan berbilang baris ke dalam jadual Postgres menggunakan Pergi, adalah penting untuk mengelakkan membuka sambungan baharu untuk setiap operasi sisipan. Jika kod anda menyerupai yang berikut:
db, err := sql.Open("postgres", "connectionURL") if err != nil { log.Fatal(err) } for i := 0; i < 10; i++ { // Insert row _, err := db.Exec("INSERT INTO table VALUES (...)") if err != nil { log.Fatal(err) } }
Anda akan menghadapi isu membuka berbilang sambungan. Ini kerana pembolehubah db ialah kumpulan sambungan dan bukannya sambungan tunggal. Setiap kali anda menghubungi Exec, sambungan baharu dibuka dan ditambahkan pada kolam.
Penyelesaian: Menggunakan Semula Sambungan Tunggal
Untuk memastikan sambungan tunggal digunakan untuk berbilang sisipan, adalah perlu untuk membuat pengubahsuaian berikut:
Kod yang diperbetulkan harus menyerupai yang berikut:
var db *sql.DB func init() { var err error db, err = sql.Open("postgres", "connectionURL") if err != nil { log.Fatal(err) } if err = db.Ping(); err != nil { log.Fatal(err) } } func main() { for i := 0; i < 10; i++ { // Insert row _, err := db.Exec("INSERT INTO table VALUES (...)") if err != nil { log.Fatal(err) } } }
Dengan melaksanakan perubahan ini, anda boleh menggunakan semula dengan berkesan sambungan Postgres DB tunggal untuk semua operasi sisipan, menghapuskan isu membuka sambungan yang berlebihan dan memaksimumkan pangkalan data kecekapan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Semula Sambungan DB Postgres Tunggal dalam Go untuk Sisipan Baris yang Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!