测试了三种方案:
方案一、消耗时间: 1586秒=26分钟,不使用进程池,executemany插入
-
import openpyxl
-
import pymysql as msq
-
import time
-
conn = msq.connect(
-
host='127.0.0.1',
-
port=3306,
-
user='root',
-
password='bagayalu',
-
database='test',
-
) #连接数据库
-
cursor = conn.cursor(cursor=msq.cursors.DictCursor) #获取游标
-
def get_data():
-
wb = openpyxl.load_workbook(r'C:\Users\User\Desktop\xx.xlsx') #打开excel表格
-
ws = wb.active #激活
-
pa = [] #定义空列表
-
for r in range(1,ws.max_row): #循环每一行,从1开始,excel第一个是1
-
A1 = ws.cell(r+1,1).value #获取第一行第一列
-
A2 = ws.cell(r+1,2).value #获取第一行第二列
-
A3 = ws.cell(r+1,3).value
优化Python Excel数据导入数据库:效率对比

本文测试了三种将Excel数据批量导入MySQL的方法,包括直接使用executemany、单进程for循环执行和使用连接池。实验结果显示,直接使用executemany在无进程池的情况下耗时26分钟,而单进程for循环执行则耗时51分钟。使用连接池的方案耗时约24-25分钟,但效果并不明显。针对性能优化提供了对比数据。
最低0.47元/天 解锁文章
1143





