PHP使用PDO从mysql读取大量数据处理详解
发布:smiling 来源: PHP粉丝网 添加日期:2021-09-05 16:52:00 浏览: 评论:0
这篇文章主要给大家介绍了关于PHP使用PDO从mysql读取大量数据处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
前言
本文主要介绍了关于PHP利用PDO从mysql读取大量数据处理的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
环境
mysql: 5.6.34
php: 5.6
nginx: php-fpm
适用场景
需要处理一定数据集业务
从mysql读取一定数据的业务导出
一次需要处理一定的mysql业务操作更新删除等
更多需要处理一定数据集的操作
pdo 关键设置
- $dbh = new \PDO($dsn, $user, $pass);
- # 关键设置,如果不设置,php依旧会从pdo一次取出数据到php
- $dbh->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
- //perpare里的游标属性不是必须的
- $sth = $dbh->prepare("SELECT * FROM `order`", array(\PDO::ATTR_CURSOR => \PDO::CURSOR_SCROLL));
- $sth->execute();
生成器
生成器,迭代数据操作
本生成器可省略
尝试代码
- class Test {
- public function test()
- {
- set_time_limit(0);
- $dbms='mysql'; //数据库类型
- $host=C('DB_HOST'); //数据库主机名
- $dbName=C('DB_NAME'); //使用的数据库
- $user=C('DB_USER'); //数据库连接用户名
- $pass=C('DB_PWD'); //对应的密码
- $dsn="$dbms:host=$host;dbname=$dbName";
- $dbh = new \PDO($dsn, $user, $pass);
- $dbh->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
- $sth = $dbh->prepare("SELECT * FROM `order`");
- $sth->execute();
- $i = 0;
- $newLine = PHP_SAPI == 'cli' ? "\n" : '<br />';
- foreach ($this->cursor($sth) as $row) {
- // var_dump($row);
- echo $row['id'] . $newLine;
- $i++;
- }
- echo "消耗内存:" . (memory_get_usage() / 1024 / 1024) . "M" . $newLine;
- echo "处理数据行数:" . $i . $newLine;
- echo "success";
- }
- public function cursor($sth)
- {
- while($row = $sth->fetch(\PDO::FETCH_ASSOC)) {
- yield $row;
- }
- }
- }
- $test = new Test();
- $test->test();
输出
- 1
- ... //省略部分id
- 804288
- 消耗内存:"0.34918212890625M
- 处理数据行数:254062
- success
Tags: PDO mysql读取大量数据
- 上一篇:浅析PHP数据导出知识点
- 下一篇:总结PHP内存释放以及垃圾回收
相关文章
- ·php pdo_mysql未安装问题解决方法(2013-12-07)
- ·pdo用法学习笔记(2013-12-27)
- ·PHP用PDO防Sql注入注意事项(2014-08-21)
- ·PHP防sql注入方法总结分析(2014-08-23)
- ·Pdo_MySQL安装过程模块提示PDO_MYSQL make: *** [pdo_mysql.lo](2014-08-28)
- ·Php中使用PDO操作MySQL数据库(查询 更新 删除)(2014-09-10)
- ·php PDO 使用方法详解(2014-09-10)
- ·php下pdo的mysql事务处理应用实例(2014-09-10)
- ·php pdo连接mssql server数据库(2014-09-11)
- ·PDO 中相关的错误处理(2014-09-11)
- ·pdo操作数据库入门教程(2014-09-11)
- ·php pdo连接并查询sql数据库代码(2014-09-11)
- ·php中PDO入门学习笔记(2015-04-08)
- ·深入分析PHP PDO配置及使用方法(2015-04-08)
- ·PHP单例模式编写的PDO类的程序(2015-04-15)
- ·PHP使用PDO抽象层获取查询结果的方法示例(2018-11-07)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)