我的目标是从SQL表中提取一列(1mn行),用python进行一些计算,然后将其插入到SQL中的另一个表中。当前代码执行逐行计算和逐行插入SQL。100000行需要180秒(有人告诉我这很慢)。我要一次插入一百万行。我在这里搜索,找到了很多没有用的解决方案。我在研究Python2.7。在
无效的解决方案1:
args = [['a','b','1'],['c','d','2'],['e','f','3']]
temp = ['%s','%s','%s']
numRows = 3
InsertSQL = "INSERT INTO SB.Temp VALUES" + ','.join(['('+','.join(temp)+')']*numRows)
c.execute(InsertSQL,args)
conn.commit()
错误:
^{pr2}$我是一个pythonnoob,所以我对SQL所需的字符串进行了逆向工程,并提出了这个解决方案,它确实有效,但并不优雅。在
def itworks():
args = [['a','b','1'],['c','d','2'],['e','f','3']]
nargs = []
for i in args:
nargs.append("('{}', '{}', {})".format(i[0],i[1],i[2]))
nargs = ','.join(nargs)
c.execute ("INSERT INTO SB.Temp VALUES {}".format(nargs))
conn.commit()
我有两个问题: -一次在SQL中插入一百万行的最佳方法是什么? -如何使我的解决方案更“Python”? 谢谢您! 亚历克斯
目前没有回答
相关问题 更多 >
编程相关推荐