MySQL大结果集分次取回,不耗费大内存的lazy计算的方法
MySQL大结果集分次取回,不耗费大内存的lazy计算的方法
LinkerLin 发表于4年前
MySQL大结果集分次取回,不耗费大内存的lazy计算的方法
  • 发表于 4年前
  • 阅读 623
  • 收藏 13
  • 点赞 1
  • 评论 0

腾讯云实验室 1小时搭建人工智能应用,让技术更容易入门 免费体验 >>>   

Python导数据的时候,需要在一个大表上读取很大的结果集。

如果用传统的方法,Python的内存会爆掉。因为无论是fetchone()还是fetchall(),都是把结果集读取到本地的。

解决的方法:

conn = MySQLdb.connect(host='ip地址', user='用户名', passwd='密码', db='数据库名', port=3306,
                       charset='utf8', cursorclass = cursors.SSCursor)
需要注意的是,结果集只要没取完,这个conn是不能再干别的事情的,包括另外生成一个cursor也不行的。

如果需要干别的,请另外再生成一个连接对象。

标签: MySQLdb Python
共有 人打赏支持
LinkerLin
粉丝 65
博文 51
码字总数 9543
作品 1
×
LinkerLin
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: