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?
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.
① 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()
Codebeispiel:
LOAD DATA INFILE 'data.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY ' ' IGNORE 1 LINES;
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!