MySQL大结果集分次取回,不耗费大内存的lazy计算的方法

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

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

解决的方法:

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

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

你可能感兴趣的:(python,mysqldb)