【问题标题】:pymysql retrievingdata in batchespymysql批量检索数据
【发布时间】:2023-03-19 18:43:01
【问题描述】:

我正在使用 pymysql 与 sql db 交互,代码如下:

    query = "SELECT * FROM my_table"
    c = db.cursor(pymysql.cursors.DictCursor)
    c.execute(query)
    c.fetchall()

现在我正在为一个包含 3000 个输入的数据库执行此操作,这并不多,我计划在一个包含 1500 万个输入的数据库上使用它,并且我想将数据作为 5000 个输入的批次循环取出

我想知道我是否需要在查询中使用 LIMIT 和 OFFSET 来执行此操作,或者我可以使用 pymysql 模块中的方法来执行此操作...谢谢

【问题讨论】:

标签: python mysql sql pymysql


【解决方案1】:

我这样做的方式是这样的:

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

【讨论】:

    猜你喜欢
    • 2011-11-05
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 2019-07-17
    • 2016-01-25
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    相关资源
    最近更新 更多