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

如果用传统的方法,Python的内存会爆掉,传统的读取方式默认在内存里缓存下所有行然后再处理,内存容易溢出

解决的方法:

1)使用SSCursor(流式游标),避免客户端占用大量内存。(这个cursor实际上没有缓存下来任何数据,它不会读取所有所有到内存中,它的做法是从储存块中读取记录,并且一条一条返回给你。)

2)使用迭代器而不用fetchall,即省内存又能很快拿到数据。

import MySQLdb.cursors

conn = MySQLdb.connect(host='ip地址', user='用户名', passwd='密码', db='数据库名', port=3306,

charset='utf8', cursorclass = MySQLdb.cursors.SSCursor)

cur = conn.cursor()

cur.execute("SELECT * FROM bigtable");

row = cur.fetchone()

while row is not None:

do something

row = cur.fetchone()

cur.close()

conn.close()

需要注意的是,

1、因为SSCursor是没有缓存的游标,结果集只要没取完,这个conn是不能再处理别的sql,包括另外生成一个cursor也不行的。

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

2、 每次读取后处理数据要快,不能超过60s,否则mysql将会断开这次连接,也可以修改 SET NET_WRITE_TIMEOUT = xx 来增加超时间隔。

以上这篇解决python读取几千万行的大表内存问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持萬仟网。

希望与广大网友互动??

点此进行留言吧!

python 读取数据库内存爆_解决python读取几千万行的大表内存问题相关推荐

  1. python读取千万级数据库数据类型_解决python读取几千万行的大表内存问题

    Python导数据的时候,需要在一个大表上读取很大的结果集. 如果用传统的方法,Python的内存会爆掉,传统的读取方式默认在内存里缓存下所有行然后再处理,内存容易溢出 解决的方法: 1)使用SSCu ...

  2. python输出到文件乱码_解决python解析文件时输出乱码

    首先获取到json模块,encoding指定文件编码utf-8,errors报错时忽略错误,print()输出结果看看是否有问题. # -*- coding: utf-8 -*- import jso ...

  3. python opencv 内存泄露_解决python中显示图片的plt.imshow plt.show()内存泄漏问题

    当要处理批量图片,且每张图片都要进行显示时,用plt.imshow() plt.show()会出现内存泄漏, 管理器中看到其中一个python进程的内存不断上涨,目前有找到解决方法 from matp ...

  4. python画图程序没有图_解决python中使用plot画图,图不显示的问题

    解决python中使用plot画图,图不显示的问题 对以下数据画图结果图不显示,修改过程如下 df3 = {'chinese':109, 'American':88, 'German': 66, 'K ...

  5. python函数注释 参数 省略号_解决python 输出是省略号的问题

    这个问题非常非常重要,搞了一晚上都没解决好,但是真的很简单很简单, 如果你也 是用的numpy array, 如果你也想得到输出矩阵的全部内容,而不是省略形式, [[ 0.10284943 0.095 ...

  6. python脚本自动运行失败_解决Python中定时任务线程无法自动退出的问题

    python的线程有一个类叫Timer可以,用来创建定时任务,但是它的问题是只能运行一次,如果要重复执行,则只能在任务中再调用一次timer,但这样就存在新的问题了,就是在主进程退出后,不能正常退出子 ...

  7. python权限不够无法写入_解决python使用pip安装模块的权限问题

    ubuntu16.04下默认的python和pip 1.ubuntu16.04默认安装了两个版本的python,python2.7和python3.5,可以使用python -V查看版本 命令行中py ...

  8. python打包包含所有依赖_解决Python开发过程中依赖库打包问题的方法

    在Python开发的过程中,经常会遇到各种各样的小问题,比如在一台计算机上调试好的程序,迁移到另外一台机子上后往往会应为工程项目依赖库的缺失而造成错误. 除了一遍又一遍对着被抛出错误去重新instal ...

  9. python安装报错类型_解决Python安装cryptography报错问题

    解决Python安装cryptography报错问题 错误一: gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wst ...

最新文章

  1. linux 定时任务
  2. mqtt linux 编译,MQTT客户端代码X64位Ubuntu环境编译+测试实践小结
  3. 佛缘——宝华山隆昌寺之行
  4. 一、pytorch搭建实战以及sequential的使用
  5. 你让,勋爵? 使用Jenkins声明性管道的Docker中的Docker
  6. Java Currency getInstance()方法与示例
  7. aspose条件格式无法读取_分析 Pandas 源码,解决读取 Excel 报错问题
  8. SNMP报文抓取与分析(一)
  9. C语言练习——打印九九乘法表
  10. <2021SC@SDUSC>开源游戏引擎Overload代码分析五:OvEditor——RawShaders.cpp
  11. 中兴盒子B860A-免拆机-线刷-第三方刷机固件及教程
  12. 傅里叶变换(二维离散傅里叶变换)
  13. 新任项目主管如何带好IT团队?
  14. Cannot convert a symbolic Tensor (simple_rnn/strided_slice:0) to a numpy array. 报错 (解决方法)
  15. 深度学习损失函数 分类损失回归损失
  16. 软考—信息项目管理师(信息化和信息系统二)
  17. Java 编写捕鱼达人游戏 窗体程序 完整源码
  18. Java学习1-基本概念
  19. Golang将密码盐加密
  20. CSS——粘性定位(sticky)

热门文章

  1. Android 系统定时管理器AlarmManager的使用
  2. PLSQL_动态语句的解析(概念)
  3. 【2012百度之星资格赛】F:百科蝌蚪团
  4. 用macport安装nginx
  5. html图片上传阅览并且点击放大
  6. java获取中文拼音首字母
  7. Unity3D教程:尽量避免使用foreach
  8. 解决虚拟机中kylin连不上网络的问题
  9. 在线等比数列项数生成器
  10. python的顶级库_世界上最顶级的python库,NumpyPandas