我有脚本A
:
...
cursor.execute('SELECT col1, col2 FROM tableA')
rows = cursor.fetchall()
for row in rows:
statement = 'INSERT INTO tableB (col1, col2) VALUES (%s, %s)'
args = row.col1, row.col2
cursor.execute(statement, args)
脚本B
:
...
columns = []
cursor.execute('SELECT col1, col2 FROM tableA')
rows = cursor.fetchall()
for row in rows:
column_object = [row.col1, row.col2]
columns.append(column_object)
for column_object in columns:
statement = 'INSERT INTO tableB (col1, col2) VALUES (%s, %s)'
args = column_object[0], column_object[1]
cursor.execute(statement, args)
使用一个小样本测试集,我运行了两次脚本,性能可以忽略不计。一种方法比另一种方法更受欢迎吗?
答案 0 :(得分:1)
脚本A使用更少的内存,并且更短更简单。所以我会用A。
您可以通过将列的构建转换为生成器来解决B中的内存问题,但它仍然比A更复杂。