Apabila berurusan dengan set data yang besar, adalah penting untuk mengoptimumkan interaksi pangkalan data. psycopg2, perpustakaan Python yang popular untuk PostgreSQL, menyediakan beberapa kaedah untuk memasukkan berbilang baris dengan cekap. Satu kaedah sedemikian ialah subjek soalan ini: memasukkan berbilang baris dengan satu pertanyaan.
Keperluan untuk teknik ini timbul apabila bilangan baris yang akan disisipkan berubah. Pendekatan tradisional, seperti yang dinyatakan dalam soalan, melibatkan penggunaan penggabungan rentetan untuk membina senarai tupel yang dipisahkan koma yang mewakili baris yang akan dimasukkan. Walau bagaimanapun, terdapat pendekatan yang lebih mudah dan ringkas menggunakan kaedah executemany() psycopg2.
Kaedah ini mengambil dua hujah: pernyataan SQL yang akan dilaksanakan dan senarai baris yang akan dimasukkan. Dengan menggunakan pemahaman senarai atau ungkapan penjana, ia menjadi mudah untuk membuat senarai tupel yang mewakili baris yang akan dimasukkan. Sebagai contoh, coretan kod berikut menunjukkan cara memasukkan tiga baris ke dalam jadual bernama t menggunakan executemany():
import psycopg2 # Establish a connection to the database conn = psycopg2.connect(host='localhost', user='postgres', password='mypassword', database='mydb') # Create a cursor to execute queries cursor = conn.cursor() # Prepare the SQL statement sql = "INSERT INTO t (a, b) VALUES (%s, %s)" # Create a list of tuples representing the rows to be inserted rows = [(1, 2), (3, 4), (5, 6)] # Execute the query using executemany() cursor.executemany(sql, rows) # Commit the changes to the database conn.commit() # Close the cursor and connection cursor.close() conn.close()
Pendekatan ini memerlukan lebih sedikit baris kod dan menyediakan kebolehbacaan kod yang lebih baik berbanding kaedah penggabungan. Selain itu, executemany() telah diketahui menawarkan prestasi yang lebih baik dalam kes tertentu.
Seperti yang dinyatakan dalam jawapan yang disediakan, mengoptimumkan interaksi pangkalan data adalah penting untuk mengendalikan set data yang besar. Dengan menggunakan executemany(), psycopg2 membenarkan pembangun memasukkan berbilang baris dengan cekap dan mudah.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam PostgreSQL menggunakan Psycopg2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!