如果查询结果太大,该怎么办

时间:2016-10-11 04:26:43

标签: python mysql mysql-connector

我使用python3的mysql连接器从mysql数据库进行查询。我有这么多的数据,如果我收集最近7天'数据,查询的大小将超过10GB,因此强制我的python脚本被杀死。我认为通常我们可以流式传输结果,但是我找不到在mysql conncetor中传输查询结果的方法。还有其他方法可以解决问题吗?

2 个答案:

答案 0 :(得分:0)

不要一次性获取结果集。您可以执行以下操作之一或其组合:

  1. 使用LIMIT, OFFSET使用SELECT into
  2. 生成多个文件
  3. 使用日期/小时功能使用SELECT into
  4. 生成多个文件

    cat使用cat hugedata_* > hugedata.csv

    将所有生成的文件放入一个文件中

答案 1 :(得分:0)

@Anthony Kong的评论是正确的。要解决此问题,我们可以https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-fetchmany.html

执行fetchmany功能

在深入研究代码之后,我发现fetchmany函数调用了许多fetchone来实现" fetchmany"。所以我决定最后使用fetchone。此外,fetchone还附带了文档https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-fetchone.html

上的示例