Heim >Datenbank >MySQL-Tutorial >Zusammenfassung häufig gestellter Fragen zum Importieren von Excel-Daten in MySQL: Wie kann das Problem der großen Batch-Einfügung beim Importieren von Daten gelöst werden?

Zusammenfassung häufig gestellter Fragen zum Importieren von Excel-Daten in MySQL: Wie kann das Problem der großen Batch-Einfügung beim Importieren von Daten gelöst werden?

WBOY
WBOYOriginal
2023-09-08 11:07:481304Durchsuche

Zusammenfassung häufig gestellter Fragen zum Importieren von Excel-Daten in MySQL: Wie kann das Problem der großen Batch-Einfügung beim Importieren von Daten gelöst werden?

Zusammenfassung häufig gestellter Fragen zum Importieren von Excel-Daten in MySQL: Wie kann das Problem der großen Batch-Einfügung beim Importieren von Daten gelöst werden?

Der Import von Excel-Daten in MySQL ist eine der Aufgaben, die in der täglichen Entwicklung häufig auftreten. Zum Importieren einer kleinen Datenmenge können Sie Datenbank-Client-Tools oder Befehlszeilen verwenden, um Einfügevorgänge durchzuführen. Bei großen Datenmengen führt ein einfacher Einfügevorgang jedoch zweifellos zu ernsthaften Leistungsproblemen. In diesem Artikel wird beschrieben, wie dieses Problem gelöst werden kann, und es werden entsprechende Codebeispiele aufgeführt.

Problembeschreibung:
Bei der tatsächlichen Verwendung, wenn große Datenmengen in der Excel-Tabelle in die MySQL-Datenbank importiert werden müssen, ist die Effizienz der einzelnen Einfügungen zu gering, was zu einem sehr langsamen Importvorgang führt. Dies verschwendet nicht nur viel Zeit, sondern kann auch Probleme wie Zeitüberschreitungen bei der Datenbankverbindung oder Speicherüberlauf verursachen.

Lösung:
Um die Effizienz des Imports zu verbessern, können wir die Stapeleinfügung verwenden, um mehrere Datensätze gleichzeitig in die Datenbank einzufügen. MySQL bietet eine Vielzahl von Methoden, um diesen Zweck zu erreichen. Im Folgenden werden drei häufig verwendete Methoden vorgestellt.

  1. Verwenden Sie die INSERT INTO…VALUES-Anweisung.
    Batch-Einfügung wird durch die Konstruktion der INSERT INTO…VALUES-Anweisung erreicht. Die spezifischen Schritte sind wie folgt:

① Lesen Sie die Excel-Tabelle und speichern Sie die Daten in einem zweidimensionalen Array.
② Konvertieren Sie das zweidimensionale Array in die Zeichenfolgenform der VALUES-Klausel.
③ Spleißen Sie die INSERT INTO-Anweisung und fügen Sie die VALUES-Klausel in die Datenbank ein.

Codebeispiel:

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. Verwendung der LOAD DATA INFILE-Anweisung
    MySQL stellt die LOAD DATA INFILE-Anweisung zum Importieren von Daten aus Dateien bereit. Indem Sie die Daten als CSV-Datei speichern und sie dann mit der LOAD DATA INFILE-Anweisung sofort in die Datenbank importieren, kann die Importeffizienz erheblich verbessert werden.

Codebeispiel:

LOAD DATA INFILE 'data.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '
'
IGNORE 1 LINES;
  1. Verwenden von Stapeleinfügungstools
    Zusätzlich zum manuellen Schreiben von Code zum Implementieren der Stapeleinfügung können Sie auch einige Tools verwenden, um den Prozess zu automatisieren. Sie können beispielsweise die Pandas-Bibliothek von Python verwenden, um die Daten im DataFrame direkt in die MySQL-Datenbank einzufügen, indem Sie die Methode to_sql aufrufen.

Codebeispiel:

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

Zusammenfassung:
Beim Importieren von Excel-Daten in MySQL ist die Verwendung einer einzelnen Einfügemethode ineffizient und kann die Importanforderungen großer Datenmengen nicht erfüllen. Durch Batch-Einfügung oder den Einsatz von Tools kann die Effizienz des Imports deutlich verbessert und die Importzeit verkürzt werden. Welche Methode zum Einsatz kommt, hängt von den individuellen Bedürfnissen und Umständen ab. Ich hoffe, dass die Einführung und die Beispiele in diesem Artikel den Lesern helfen können, die Probleme beim Masseneinfügen beim Importieren von Daten zu lösen.

Das obige ist der detaillierte Inhalt vonZusammenfassung häufig gestellter Fragen zum Importieren von Excel-Daten in MySQL: Wie kann das Problem der großen Batch-Einfügung beim Importieren von Daten gelöst werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn