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

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

一:设置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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react 组件封装原则_我理解的React:React 到底是什么?

希望本文能帮助没接触过 React 的同学,对React有个大致的理解。最近要做一个“前端零基础的入门课程分享”,很多非前端同学可能只是知道 React 是个前端框架,整体对 React 的理解还是很模糊,借此机会,分享一下我对 Rea…

解引用NULL为什么会导致程序挂死?

来源:公众号【编程珠玑】作者:守望先生ID:shouwangxiansheng解引用NULL指针为什么会出错,导致程序挂死?或者说访问内存地址为0的位置为什么会视为非法?先了解NULL参考《NULL,0,\0有何区别?》。解…

JAVA多线程实现的三种方式 ()

1、继承Thread类实现多线程 继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法…

关于主机的思维导图_送给孩子最好的思维导图课程

思维导图寒假班来了1关于思维导图思维导图是一种简单而有效的图形思维工具,主要元素包含图形、线条、关键字、颜色,配合下图,我们能理解思维导图利用了左脑和右脑的工作机理,能够充分调动大脑的分析推理和想象创新能力&#xff0c…

2016年10月计算机网络技术,2016年10月自考《计算机网络技术》练习题及答案1

2016年10月自考备考开始了,为了帮助自考生在考试阶段顺利复习,猎学网小编为你提供2016年10月自考《计算机网络技术》练习题及答案1,检测备考情况,从而进行查缺补漏。更多2016自学考试资讯请访问1、对地址转换协议(ARP)描述正确的是…

华为项目Tree canvas画图2

//添加数组找到box_content ul li 对应的indexct.lineTo($(".box_content ul li").eq(j).position().left57,($(".box_header ul li").eq(index).position().top)106140);//中点ct.lineTo($(".box_content ul li").eq(j).position().left57,($(&…

那年夏日我吃瓜

好吧,标题就是为了吸引读者进来增加阅读量的,作为一个公众号小编,我没有什么大量的墨水贡献给大家,但是就是想吹牛逼一下。我最近很懒,都有好几天没有更新新的文章了,然后大家也看到我自己写的东西没有什么…

验证python安装_Python环境搭建(安装、验证与卸载)

电脑系统版本 :Win8.1/64位Python官网地址:www.python.orgPython安装版本:3.7.2本文目录:一、Python的安装二、验证Python安装的情况三、Python的卸载四、Python环境变量配置一、Python的安装1.打开浏览器进入Python官网&#x…

未来计算机是否有意识或者人为的赋予意识,人工智能会有自我意识吗?

在西雅图的艾伦脑科学研究所,正在进行大规模的研究,以了解人脑中860亿个神经元是如何连接的。目的是产生所有连接的图:连接组。该研究所的科学家现在正在重建一立方毫米的老鼠大脑,这是有史以来最复杂的。绘制出大脑连接方式的映射…

别瞎找了,你要的C语言经典示例都在这~

大家周末好,这篇文章是从朋友的号那边看到的,确实不错,如果C语言还觉得没有胸有成熟的话,可以看看。里面的例子都很经典,有条件的同学实际操作一下。给大家找了一些C语言经典示例,github链接:ht…

【Java基础总结】网络编程

网络编程 InetAddress tcp udp转载于:https://www.cnblogs.com/lhat/p/6168909.html

广联达文件被锁怎么修复_事无巨细的绕过Apple id教程+修复蜂窝数据/电话

本次教程首发于Apple tech752大神,十分感谢他的nice job!通过这份教程你可以绕过Apple id激活锁,并且保留通话和移动数据和短信的功能,解决了由于基带锁导致绕过ID的机器不可以打电话的问题。写在前面:1.请勿用于捡到/…

计算机辅助翻译专业院校,2017年北大计算机辅助翻译考研经验分享

2017年北大计算机辅助翻译考研经验分享【摘要】笔者完美地将自身优势与兴趣相结合,最终成功折桂北大计算机辅助翻译。►择校(兴趣优势)其实我最开始考研的目标并不是北大的计算机作者hhhhhh1111次阅读2017-07-06【摘要】笔者完美地将自身优势与兴趣相结合&#xff0…

如何写出让同事无法维护的代码?

译文:http://coolshell.cn/articles/4758.html原文:http://mindprod.com/jgloss/unmain.html文章转自公众号 strongerHuang对,你没看错,本文就是教你怎么写出让同事无法维护的代码,因为只有这样,别人才不能…

vs编译python好还是pycharm的好_Python学习 第3天 VS与PyCharm使用对比

前两天出差,趁着热情再玩玩Python吧IDE就在VS和Pycharm中选吧,这两个IDE都很喜欢一、VS能在VS中开发Python是最好,平时习惯了。可以安装PTVS,直接新建个Python项目,就会提示下载PTVS了,安装完试了下&#x…

CodeVs——T 4919 线段树练习4

http://codevs.cn/problem/4919/ 时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题解查看运行结果题目描述 Description给你N个数,有两种操作 1:给区间[a,b]内的所有数都增加X 2:询问区间[a,b]能被7整除的个数 输入描述 Input Descri…

html tab与jQuery,使用jquery实现div的tab切换实例代码

jQuery实现Tab切换 接触jQ不久以前的js代码来写的简单效果现在用jQ来写:HTML代码:最新评论近期热评随机文章1234567890-11234567890-21234567890-3css代码:#sidebar-tab{border:1px solid #ccf;margin-bottom:1.5em;overflow:hidden;}#tab-ti…

调试,是一件有挑战的事情

如果你不是工程师,你应该享受不到加班调试的乐趣吧,我记得在大学的时候,我第一次调试I2C时序,当时用的芯片是24C02的RTC芯片,用51单片机模拟I2C时序,怎么整也整不出来,时序这个东西,…

make 命令_make考点总结(建议中、高考学生收藏)

考点一、“make宾语宾语补足语”结构1、这个结构表示“ 使…… 处于某种状态”“ 使……怎么样”。其中宾语的补足语,通常是表示情感的词(happy, sad)或者是表示状态的词(rich, strong, ill)。比如,Make your room clean.“使你的房间干净”,…

如何通俗易懂的解释PWM?

学过电力电子的小伙伴们都知道…交流电“整流”为直流电(a)…直流电“逆变”为交流电(b)…交流电“变压”为交流电(c)…直流电“斩波”为直流电(d)…“变压”(c&#xff…