使用额外循环的含义

时间:2014-02-24 21:00:14

标签: python

我有脚本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)

使用一个小样本测试集,我运行了两次脚本,性能可以忽略不计。一种方法比另一种方法更受欢迎吗?

1 个答案:

答案 0 :(得分:1)

脚本A使用更少的内存,并且更短更简单。所以我会用A。

您可以通过将列的构建转换为生成器来解决B中的内存问题,但它仍然比A更复杂。