关于处理百万级大批量数据的mysql运行几个重要点
2018-06-22 05:24:37来源:未知 阅读 ()
处理大批量百万级的数据几点重要知识点:
一:设置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 查询,并不获取和缓存结果的行
说明
$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());//查看内存占用方法
如有更多优化方法,欢迎请教指点!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:TP3.2写分页
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP错误和异长常处理总结 2020-03-04
- PHP+redis实现添加处理投票的方法 2019-12-25
- 全面总结PHP中几种常见的超时处理问题 2019-11-25
- PHP输出数组中重名的元素的几种处理方法 2019-11-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash