pymysql批量获取数据
pymysql retrievingdata in batches
我正在使用 pymysql 与 sql 数据库交互,这里是代码:
query = "SELECT * FROM my_table"
c = db.cursor(pymysql.cursors.DictCursor)
c.execute(query)
c.fetchall()
现在我正在为一个 3000 个条目的数据库做这个,这不是很多,我计划在一个有 1500 万个条目的数据库上使用它,我想将数据作为 5000 个条目的批次循环取出
我想知道我是否需要在查询中使用 LIMIT 和 OFFSET 来执行此操作,或者我是否可以使用 pymysql 模块中的方法来执行此操作...谢谢
我这样做的方式是这样的:
query = "SELECT * FROM my_table"
c = db.cursor(pymysql.cursors.DictCursor)
c.execute(query)
limit = 5000
not_done = True
while not_done:
data = []
for _ in range(limit):
try:
data += [c.fetchone()]
except:
not_done = False
break
do_something_with_data()
我正在使用 pymysql 与 sql 数据库交互,这里是代码:
query = "SELECT * FROM my_table"
c = db.cursor(pymysql.cursors.DictCursor)
c.execute(query)
c.fetchall()
现在我正在为一个 3000 个条目的数据库做这个,这不是很多,我计划在一个有 1500 万个条目的数据库上使用它,我想将数据作为 5000 个条目的批次循环取出
我想知道我是否需要在查询中使用 LIMIT 和 OFFSET 来执行此操作,或者我是否可以使用 pymysql 模块中的方法来执行此操作...谢谢
我这样做的方式是这样的:
query = "SELECT * FROM my_table"
c = db.cursor(pymysql.cursors.DictCursor)
c.execute(query)
limit = 5000
not_done = True
while not_done:
data = []
for _ in range(limit):
try:
data += [c.fetchone()]
except:
not_done = False
break
do_something_with_data()