【发布时间】:2020-11-18 20:47:52
【问题描述】:
我正在从事一个从 GitHub API 接收信息并对其进行分析的项目。问题是当我尝试插入这种巨大的数据时(例如在文件中我插入一个列表列表,如下所示,其中包含 19k 个项目)它需要很长时间。我该如何改进呢?谢谢。
for i in commits_array:
for j in i[-1]:
self.insert_value_to_files_DB(j)
def insert_value_to_files_DB(self, array):
try:
sql = "INSERT INTO files (file_count,file_sha,file_name,file_status,file_additions,file_deletions,file_changes,commit_sha) VALUES (%s, %s, %s, %s,%s, %s, %s,%s)"
self.cursor.execute(sql, array)
self.connection.commit()
except mysql.connector.Error as error:
print("Failed to insert into MySQL table {}".format(erro
【问题讨论】:
-
(1) 考虑使用
executemany而不是execute,并且只使用一个commit(2) 将数据写入csv并使用MySQL的LOAD INFILE函数
标签: python mysql bulkinsert bulk-load