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()