Python 关于mysql游标和迭代器

Python 关于mysql游标和迭代器,python,mysql,cursor,fetchall,Python,Mysql,Cursor,Fetchall,假设我有一个mysql游标和数据读取。数据量可能非常大,我希望每次处理一行数据 简单而直接的方法可能是这样的: while True: row = cursor.fetchone() if not row: break ..... 但这看起来不太好,所以我想知道这种方式是否如想象的那样有效: for row in iter(cursor.fetchall()) 我想知道的是:如果我使用iter(cursor.fetchall())方式,它是先获取所有数据还是一次只获取

假设我有一个mysql游标和数据读取。数据量可能非常大,我希望每次处理一行数据

简单而直接的方法可能是这样的:

while True:
    row = cursor.fetchone()
    if not row: break
    .....
但这看起来不太好,所以我想知道这种方式是否如想象的那样有效:

for row in iter(cursor.fetchall())
我想知道的是:如果我使用iter(cursor.fetchall())方式,它是先获取所有数据还是一次只获取一行

任何想法都值得赞赏


thx

MySQLdbcursor类实现了,因此您只需执行以下操作:

cursor.execute(sql)
for row in cursor:
    print row
    ...
相关代码来自:


无论如何,我可以在for循环中得到列名吗?
def __iter__(self):
    return iter(self.fetchone, None)