Ringkasan soalan lazim tentang mengimport data Excel ke dalam Mysql: Bagaimana untuk menyelesaikan masalah sisipan kelompok besar apabila mengimport data?
Mengimport data Excel ke MySQL adalah salah satu tugas yang sering dihadapi dalam pembangunan harian. Untuk mengimport sejumlah kecil data, anda boleh menggunakan alat klien pangkalan data atau baris arahan untuk melaksanakan operasi sisipan. Tetapi apabila berhadapan dengan kumpulan besar import data, operasi sisipan tunggal yang mudah sudah pasti akan menyebabkan masalah prestasi yang serius. Artikel ini akan menerangkan cara menyelesaikan masalah ini dan memberikan contoh kod yang sepadan.
Penerangan masalah:
Dalam penggunaan sebenar, apabila kumpulan besar data dalam jadual Excel perlu diimport ke dalam pangkalan data MySQL, kecekapan sisipan tunggal adalah terlalu rendah, mengakibatkan operasi import yang sangat perlahan. Ini bukan sahaja membuang banyak masa, tetapi juga boleh menyebabkan masalah seperti tamat masa sambungan pangkalan data atau limpahan memori.
Penyelesaian:
Untuk meningkatkan kecekapan import, kami boleh menggunakan sisipan kelompok untuk memasukkan berbilang rekod ke dalam pangkalan data pada satu masa. MySQL menyediakan pelbagai kaedah untuk mencapai tujuan ini Tiga kaedah yang biasa digunakan akan diperkenalkan di bawah.
① Baca jadual Excel dan simpan data dalam tatasusunan dua dimensi
② Tukar tatasusunan dua dimensi ke dalam bentuk rentetan klausa VALUES
③ Sambungkan INSERT KE dalam pernyataan dan masukkan klausa VALUES ke pangkalan data.
Contoh kod:
import xlrd import pymysql # 连接数据库 conn = pymysql.connect(host='localhost', user='root', password='password', database='database') cursor = conn.cursor() # 读取Excel表格数据 data = xlrd.open_workbook('data.xlsx') table = data.sheet_by_name('Sheet1') rows = table.nrows # 构建values子句 values = [] for i in range(1, rows): values.append(tuple(table.row_values(i))) # 批量插入 sql = "INSERT INTO table_name (column1, column2, column3) VALUES (%s, %s, %s)" cursor.executemany(sql, values) conn.commit() # 关闭连接 cursor.close() conn.close()
Contoh kod:
LOAD DATA INFILE 'data.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY ' ' IGNORE 1 LINES;
Contoh kod:
import pandas as pd from sqlalchemy import create_engine # 连接数据库 engine = create_engine('mysql+pymysql://root:password@localhost/database') # 读取Excel表格数据 df = pd.read_excel('data.xlsx', sheet_name='Sheet1') # 批量插入 df.to_sql('table_name', engine, if_exists='append', index=False) # 关闭连接 engine.dispose()
Ringkasan:
Apabila mengimport data Excel ke dalam MySQL, menggunakan kaedah sisipan tunggal adalah tidak cekap dan tidak dapat memenuhi keperluan import kumpulan data yang besar. Melalui sisipan kelompok atau penggunaan alatan, kecekapan import boleh dipertingkatkan dengan ketara dan masa import dapat dikurangkan. Kaedah mana yang hendak digunakan bergantung pada keperluan dan keadaan individu. Saya harap pengenalan dan contoh dalam artikel ini dapat membantu pembaca menyelesaikan masalah sisipan pukal yang dihadapi semasa mengimport data.
Atas ialah kandungan terperinci Ringkasan soalan lazim tentang mengimport data Excel ke dalam Mysql: Bagaimana untuk menyelesaikan masalah sisipan kelompok besar apabila mengimport data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!