pymysql 解决fetchall查询大量数据占用内存过高问题

问题:PyMySQL在获取数据时提供了fetchone()和fetchall()函数来获取结果集,但是会一次将所有结果获取到,这在数据量很大时将会消耗大量内存。

解决:DictCursor

游标类的方法返回都是一个迭代器,可以使用这个迭代器进行迭代获取,这样就不用一次将所有数据保存在内存中了

使用:

import pymysql
src_pc_database = pymysql.connect(host='192.168.1.1', port=3306, user='', password='',
db='testdataanalyse',
charset='utf8', cursorclass=pymysql.cursors.SSDictCursor)

然后正常使用fetchall或者fetchone就可以了。

原文地址:https://www.cnblogs.com/vinic-xxm/p/12132243.html