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)
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!