Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memasukkan Berbilang Kamus dengan Cekap ke dalam Pangkalan Data MySQL Menggunakan Kaedah `executemany()` Python?

Bagaimanakah Saya Boleh Memasukkan Berbilang Kamus dengan Cekap ke dalam Pangkalan Data MySQL Menggunakan Kaedah `executemany()` Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-07 16:30:031086semak imbas

How Can I Efficiently Insert Multiple Dictionaries into a MySQL Database Using Python's `executemany()` Method?

Memasukkan Berbilang Kamus ke dalam MySQL Menggunakan executemany() dalam Python

Apabila mengikis data daripada web dan memasukkannya ke dalam pangkalan data MySQL, ia adalah penting untuk mengoptimumkan prestasi untuk mengelakkan penguncian pangkalan data. Kod yang disediakan menunjukkan pendekatan yang tidak cekap yang melibatkan pelaksanaan pertanyaan berasingan untuk setiap baris data jadual. Untuk menangani isu ini, kami akan meneroka cara memanfaatkan kaedah executemany() untuk memasukkan berbilang baris secara serentak.

Kaedah executemany() membolehkan anda memasukkan senarai parameter ke dalam pernyataan yang disediakan. Ia memerlukan dua hujah: pernyataan SQL dan senarai parameter. Pernyataan SQL harus mempunyai ruang letak (%s) untuk parameter.

Untuk menggunakan executemany() dalam senario ini, pertama sekali kita perlu mengubah senarai kamus menjadi tuple nilai bagi setiap baris. Ini boleh dicapai seperti berikut:

itemBank = []
for row in rows:
    itemBank.append((
        tempRow2['Item_Name'],
        tempRow1['Item_Price'],
        tempRow3['Item_In_Stock'],
        tempRow4['Item_Max'],
        getTimeExtra
        )) #append data

Seterusnya, kami menyediakan pernyataan SQL dengan ruang letak untuk parameter:

q = """ insert ignore into TABLE1 (
        Item_Name, Item_Price, Item_In_Stock, Item_Max, Observation_Date ) 
        values (%s,%s,%s,%s,%s)           
    """

Akhir sekali, kami melaksanakan kaedah executemany(), menyediakan Pernyataan SQL dan senarai parameter:

try:
    x.executemany(q, itemBank)
    conn.commit()
except:
    conn.rollback()

Pendekatan ini meningkatkan prestasi dengan ketara dengan melaksanakan satu pertanyaan untuk semua baris dalam jadual, mengelakkan overhed berbilang pertanyaan individu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Berbilang Kamus dengan Cekap ke dalam Pangkalan Data MySQL Menggunakan Kaedah `executemany()` Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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