`
flex_莫冲
  • 浏览: 1075243 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

php从mysql读取超过200W行的表

阅读更多
需要从一个大表,如user表中读取所有user数据再做整理并導出csv。如果使用框架會報內存不足,因為很多php框架會將數據庫數據放入臨時變量。

PHP Fatal error:  Allowed memory size of xxxxxx bytes .....

解决办法:
1 可以用mysql_unbuffered_query 这个api不使用客户端缓存,这样就不存在php内存分配的问题。再使用mysql_fetch_assoc 逐行獲取數據
2 根据userID批量处理,分批导出多个csv文件。
3 使用臨時表保存數據,再從臨時表導出csv。

結合第1和第3點處理,原本6個小時才能生成的數據,優化後不到10分鐘導入到臨時表,很快就導出到csv了。


参考:https://www.oschina.net/question/251494_127915?sort=default&p=1#answers
分享到:
评论

相关推荐

    [php]mysql数据库操作——DB类

    basename($_SERVER['PHP_SELF'])=='mysql.inc.php'&&header; ('Location:http://'.$_SERVER['HTTP_HOST']); //禁止直接访问本页 /** ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ ※...

    php-mysql操作类程序.zip

    介绍一个不错的PHP mysql操作类,SQL执行后的数据保存变量,读取一条数据并把数据往后移一位,如果数据为空则返回为null,更新数据库里面的数据,$t为表名,$v格式为数组格式,上标为字段名,下标为数据;$w为条件上标...

    php+mysql实现无限级分类

    项目思路分析:一个PHP项目要用到...在Mysql的表中新增了一个字段,现数据库如下: 表名 w_faqclass: id: 自增 | pid: 父类ID | xid: 排序ID | classname: 分类名称 | rank: 等级 定义: 一级分类,pid 为

    递归循环读取省市区json文件数据,并保存到数据库中(很全面)

    递归循环读取省市区json文件数据,并保存到数据库中(很全面) 其中包含代码,json文件,实体类代码。轻松上手

    mysql_fetch_row()与mysql_fetch_array()的使用介绍

    $row[1],这样以数组下标来读取数据,而mysql_fetch_array()返回的数组既包含第一种,也包含键值 对的形式,我们可以这样读取数据,(假如数据库的字段是 username,passwd):  $row[‘username’], $row[‘passwd’]...

    杰奇1.8wap手机版本(优化升级版),完美支持杰奇1.7、杰奇1.8

    原来的杰奇1.7奇迹wap手机版使用了大量的sql查询,,而且不支持列表页、阅读页缓存,pv上100w后mysql负载高~~ (1)升级后的wap手机版本完美支持杰奇1.7、杰奇1.8,而且优化了sql查询,大量减少原来的阅读、目录...

    phpnow重新安装mysql数据库的方法

    服务运行时,在指定位置读取my.ini文件如果my.ini的位置放置正确,即在默认的mysql目录结构下放置,可以不用加–defaults-file=”my.ini文件的位置”指定文件位置 2.重装mysql时移动文件位置的情况 在my.ini的[mysql

    深入mysql_fetch_row()与mysql_fetch_array()的区别详解

    这两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,我们只能$row[0],$row[1],这样以数组下标来读取数据,而mysql_fetch_array()返回的数组既包含第一种,也包含键值对的形式,我们可以这样...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.net)自由下载。PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux...

    PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)

    php $data = '254.254.254.254'; echo ip2long($data); function getIP() { if(getenv(HTTP_CLIENT_IP) && strcasecmp(getenv(HTTP_CLIENT_IP), unknown)) $ip = getenv(HTTP_CLIENT_IP); elseif(getenv...

    CodeIgniter:php敏捷开发框架web快速开发详解

    CI 推荐你把你的 URL 放入一个配置文件中供你的脚本读取。CI 的 anchor 函数会自动从配置文件中提取相关 URL。因此,当你修改一个 URL 时,你只需要修改配置文件中的对应链接,然后所有超链接将自动更新。 1.1.2.2...

    生成百度sitemap站点地图的php类.zip

    where id > 取出的最大id(当前mysql为正序查询、如果为倒序、改成小于) limit 1000 这样的话又取出1000、然后修改索引查询txt的最小id、最大id、生成条数加到2000。以此类推等生成条数到了5000的时候再另起一行...

    php+ajax导入大数据时产生的问题处理

    介绍:就是想实现简单的ajax上传数据,但是当数据量较大的时候,问题就一个一个接着来了,其实数据也不是很大,就是csv格式数据 不到5w条数据。大小5M,一开始认为这个很简单,就是先上传一下文件,然后读取一下,存...

    机智内容管理系统2.0

    机智内容管理系统1.0(witcms)是Php+Mysql程序结构开发的. 这是一个简单但又伸缩性很强的CMS,简单自定义标签即可构造各种形式的展示模块. 全站生成静态化,使网站运行速度更快. 并且本CMS为开源免费提供广大用户使用. ...

    Linux操作系统基础教程

    Linux 操作系统基础教程 清华大学信息学院计算机系 ...从网上下载的,但是我不推荐易用这种方法得到 Linux,因为仅仅核心就有几十个 Mbit 的 数据量,而一个完整的发行版本大概都是 1Gbit 左右的数据量...

Global site tag (gtag.js) - Google Analytics