Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam Pangkalan Data Menggunakan psycopg2?

DDD
Lepaskan: 2024-11-26 04:09:09
asal
945 orang telah melayarinya

How Can I Efficiently Insert Multiple Rows into a Database Using psycopg2?

Sisipan Berbilang Baris yang Cekap dengan psycopg2

Apabila mengendalikan sisipan pukal ke dalam pangkalan data, ia menjadi penting untuk mengoptimumkan prestasi. Walaupun psycopg2 menawarkan kaedah executemany untuk tugasan ini, pendekatan yang lebih ringkas dan selalunya lebih pantas wujud.

Pendekatan ini melibatkan penggunaan fungsi mogrify() dan menggabungkan pernyataan SQL yang dijana ke dalam satu pertanyaan. Ia memerlukan penciptaan tuple yang mengandungi data untuk dimasukkan. Mari kita pertimbangkan contoh:

args = [(1, 2), (3, 4), (5, 6)]
args_str = ','.join(cursor.mogrify("(%s,%s)", (x, )) for x in args)
cursor.execute("INSERT INTO t (a, b) VALUES " + args_str)
Salin selepas log masuk

Kaedah ini telah ditunjukkan secara empirik untuk meningkatkan prestasi dengan ketara, terutamanya untuk kumpulan data yang besar. Dalam satu contoh, hanya 10 saat diperlukan untuk memasukkan 2000 baris menggunakan kaedah ini, berbanding 2 minit menggunakan executemany.

Dengan menggunakan teknik ini, pembangun boleh mencapai sisipan pukal yang lebih pantas dengan psycopg2, dengan itu mengoptimumkan operasi penulisan pangkalan data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam Pangkalan Data Menggunakan psycopg2?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan