Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mengelakkan Keletihan Sambungan PostgreSQL Apabila Memasukkan Baris dalam Go?

Bagaimanakah Saya Boleh Mengelakkan Keletihan Sambungan PostgreSQL Apabila Memasukkan Baris dalam Go?

Patricia Arquette
Lepaskan: 2024-12-17 09:03:26
asal
866 orang telah melayarinya

How Can I Avoid PostgreSQL Connection Exhaustion When Inserting Rows in Go?

Menggunakan Semula Sambungan Pangkalan Data PostgreSQL untuk Sisipan Baris dalam Go

Masalah

Dalam atur cara Go, cuba memasukkan data ke dalam jadual PostgreSQL menggunakan sambungan pangkalan data tunggal untuk setiap mesej yang diterima daripada RabbitMQ mengakibatkan ralat kerana melebihi bilangan maksimum sambungan.

Penyelesaian

Isunya terletak pada cara pertanyaan SQL dilaksanakan dalam Go. sql.DB ialah kumpulan sambungan dan bukannya satu sambungan. Ia membuka sambungan seperti yang diperlukan dan menggunakan semula sambungan melahu, tetapi dalam kes ini, sambungan tidak dilepaskan dengan betul.

Masalah timbul apabila menggunakan db.QueryRow tanpa memanggil Scan pada nilai *Row yang dikembalikan. *Row memegang rujukan kepada sambungan, yang dikeluarkan secara automatik apabila Imbasan dipanggil. Walau bagaimanapun, dalam kod yang disediakan, Imbasan tidak dipanggil, menyebabkan sambungan bertimbun dalam kumpulan sambungan.

Untuk menyelesaikan masalah ini, penyelesaiannya ialah sama ada menggunakan db.Exec jika output tidak diperlukan, atau untuk memanggil Imbas pada nilai *Baris yang dikembalikan oleh db.QueryRow.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelakkan Keletihan Sambungan PostgreSQL Apabila Memasukkan Baris dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan