Rumah  >  Artikel  >  pangkalan data  >  Ringkasan soalan lazim tentang mengimport data Excel ke dalam Mysql: Bagaimana untuk menyelesaikan masalah sisipan kelompok besar apabila mengimport data?

Ringkasan soalan lazim tentang mengimport data Excel ke dalam Mysql: Bagaimana untuk menyelesaikan masalah sisipan kelompok besar apabila mengimport data?

WBOY
WBOYasal
2023-09-08 11:07:481223semak imbas

Ringkasan soalan lazim tentang mengimport data Excel ke dalam Mysql: Bagaimana untuk menyelesaikan masalah sisipan kelompok besar apabila mengimport data?

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.

  1. Gunakan pernyataan INSERT INTO…VALUES
    Penyisipan kelompok dicapai dengan membina pernyataan INSERT INTO…VALUES. Langkah-langkah khusus adalah seperti berikut:

① 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()
  1. Menggunakan pernyataan LOAD DATA INFILE
    MySQL menyediakan pernyataan LOAD DATA INFILE untuk mengimport data daripada fail. Dengan menyimpan data sebagai fail CSV dan kemudian menggunakan pernyataan LOAD DATA INFILE untuk mengimportnya ke dalam pangkalan data sekali gus, kecekapan import boleh dipertingkatkan dengan ketara.

Contoh kod:

LOAD DATA INFILE 'data.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '
'
IGNORE 1 LINES;
  1. Menggunakan alat pemasukan kelompok
    Selain menulis kod secara manual untuk melaksanakan pemasukan kelompok, anda juga boleh menggunakan beberapa alatan untuk mengautomasikan proses. Sebagai contoh, anda boleh menggunakan pustaka panda Python untuk terus memasukkan data dalam DataFrame ke dalam pangkalan data MySQL dengan memanggil kaedah to_sql.

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!

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