处理大批量百万级的数据几点重要知识点:

一:设置php运行的内存配置 ini_set("memory_limit","1200M");

  在php.ini中有如下配置

  ; Maximum input variable nesting level
  ; http://php.net/max-input-nesting-level
  ;max_input_nesting_level = 64

  ; How many GET/POST/COOKIE input variables may be accepted
  ; max_input_vars = 1000

  ; Maximum amount of memory a script may consume (128MB)
  ; http://php.net/memory-limit
  memory_limit = 100M

  会有一个默认的配置,导致运行到一定数量的时候,报错,无法运行下去。

二:设置脚本最大执行时间 set_time_limit ( int $seconds )

  方法具体详情

三:不设置缓存结果 mysql_unbuffered_query

  在处理大批量数据的时候优势非常大,

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query — 向 MySQL 发送一条 SQL 查询,并不获取和缓存结果的行

说明

resource mysql_unbuffered_query ( string $query [, resource $link_identifier ] )

mysql_unbuffered_query() 向 MySQL 发送一条 SQL 查询 query,但不像 mysql_query() 那样自动获取并缓存结果集。一方面,这在处理很大的结果集时会节省可观的内存。另一方面,可以在获取第一行后立即对结果集进行操作,而不用等到整个 SQL 语句都执行完毕。当使用多个数据库连接时,必须指定可选参数 link_identifier

Note:

mysql_unbuffered_query() 的好处是有代价的:在 mysql_unbuffered_query() 返回的结果集之上不能使用mysql_num_rows() 和 mysql_data_seek()。此外在向 MySQL 发送一条新的 SQL 查询之前,必须提取掉所有未缓存的 SQL 查询所产生的结果行。

参见 mysql_query()

四:取消变量缓存 unset($x)

  在循环的结束环节,使用unset方法释放变量占用的内存。

具体代码例子(使用pdo):

$pdo = new PDO("mysql:host=127.0.0.1;dbname=aa","root","root");
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
ini_set("memory_limit","1200M");
set_time_limit(0);$sql = 'select url,num from cas_key limit 100000 ';
$rs = $pdo->query($sql);while($value = $rs->fetch()){unset($xxx);unset($xxx);unset($xxx);
}
var_dump(memory_get_usage());//查看内存占用方法

如有更多优化方法,欢迎请教指点!

转载于:https://www.cnblogs.com/fpcing/p/7249818.html

关于处理百万级大批量数据的mysql运行几个重要点相关推荐

  1. java百万级大数据量导出

    java实现百万级大数据量导出 实现方式一 一,分析 excel导出如果数据量过大,会出现两个内存溢出的问题 查绚数据量过大,导致内存溢出(可通过分批查绚解决) 下载的时候大EXCEL转换的输出流内存 ...

  2. 高性能 + 百万级excel数据导入导出

    高性能 + 百万级excel数据导入导出 内容介绍 github地址 使用文档地址 安装注意事项 仅以mac举例 ide中提示相关代码 下载demo 内容介绍 [转载]https://learnku. ...

  3. php导出1万条数据excel_实用!用PHP导出百万级大数据到Excel

    实用!用PHP导出百万级大数据到Excel 作者:PHPYuan 时间:2018-07-31 03:41:41 关注我们的人 月薪都过万了 一.数据量分析 假设我们需要单日导入的数量为20W+ Exc ...

  4. 百万级商品数据实时同步,查询结果秒出

    来自:微微科技公司 前阵子老板安排了一个新任务,要建设一个商家商品搜索系统,能够为用户提供快速.准确的搜索能力,在用户输入搜索内容时,要能从商家名称和商品名称两个维度去搜索,搜索出来的结果,按照准确率 ...

  5. 用FlexGrid做开发,轻松处理百万级表格数据

    表格数据处理是我们项目开发中经常会遇到的设计需求之一,所需处理的数据量也较大,通常是万级.甚至百万级.此时,完全依赖平台自带的表格工具,往往无法加载如此大的数据量,或者加载得很慢影响程序执行. 那么, ...

  6. excel 两组数据交点_如何在百万级的数据里找到别人正在赚钱的项目?【实操长文】...

    前不久,我在好友的知乎星球看到了这篇知乎文章,后面又在生财有术星球看到了原作者小曾分享.更巧的是,小曾也在白杨SEO星球嘉宾令狐峰的极客微信群里,所以就这样认识了. 君言这篇文章,我详细看过了,真心很 ...

  7. excel 两组数据交点_如何在百万级的数据里找到别人正在赚钱的项目

    本篇内容可能会涉及部分编程知识,但都是基础中的基础,不用担心,其余都是通俗易懂. 我寻找项目的重点在于挖掘海量用户的需求,再去做自动化归类,数据量越大,归类越智能,找到的需求就越清晰. 分为两个方向挖 ...

  8. POI百万级大数据量EXCEL导出

    一. 简介 excel导出,如果数据量在百万级,会出现俩点内存溢出的问题: 1. 查询数据量过大,导致内存溢出. 该问题可以通过分批查询来解决: 2. 最后下载的时候大EXCEL转换的输出流内存溢出: ...

  9. 使用MySQL处理百万级以上数据时,几个好习惯常识

    经测试对一个包含400多万条记录的表执行一条件查询,其查询时间竟然高达40几秒,相信这么高的查询延时,任何用户都会抓狂.因此如何提高sql语句查询效率,显得十分重要.以下是结合网上流传比较广泛的几个查 ...

最新文章

  1. 封禁华为的美国,现在不得不在5G标准制定上“恢复合作”,网友:5G真香
  2. 多少人没熬过45-55这段危险期? 为家人, 请多看一眼!
  3. [转] 如何在 CentOS7 中使用阿里云的yum源
  4. Qt的一个颜色选取按钮QColorButton
  5. 【Linux 内核】实时调度类 ⑥ ( 实时调度类核心函数源码分析 | 插入进程到执行队列 | 从执行队列中选择优先级最高的进程 )
  6. OMF(Oracle Managed Files)详解及测试
  7. 第六节:ES6为字符串String带来哪些好玩的特性?
  8. 进程相关概念与多线程的基本使用
  9. 【转】关于VB中Shell及ShellExecute的总结与记录
  10. linux 域名对应ip 端口号,【原创】Linux基础之测试域名IP端口连通性
  11. nginx安装http2.0协议
  12. UNIX网络编程的5种IO模型
  13. 艾迈斯半导体推出新款高性能读取IC,推动医疗和工业数字化X射线设备制造商降本增效
  14. go :Multiple-value strconv.Atoi() (int, error) in single-value context
  15. Moneybookers支付方式开发
  16. anbox 使用情况_Anbox让您在Linux桌面上运行Android应用程序
  17. MongoDB3.4 根据中文拼音给中文排序
  18. strstr strcmp
  19. 安卓很抱歉已停止运行
  20. 爬虫遇到验证码必须要知道的解决办法(干货)

热门文章

  1. Powerful Sleep(神奇的睡眠-睡眠生物钟的秘密:如何睡得更少却睡得更好)阅读笔记...
  2. 制作Slider组件
  3. RxPermissions 源码解析之举一反三
  4. 经常使用的 WEB server
  5. RHCS集群原理概述
  6. IE9给我带来的惊喜和不解(For Silverlight不解)
  7. php 逗号 分割字符串
  8. OpenNMS全接触-事件及通知(九)
  9. 实现一个通用的生产者消费者队列(c语言版本)
  10. 深度学习目标检测之 YOLO v4