mysql_unbuffered_query pdo_php中mysql操作的buffer知识

php与mysql的连接有三种方式,mysql,mysqli,pdo。不管使用哪种方式进行连接,都有使用buffer和不使用buffer的区别。

什么叫使用buffer和不使用buffer呢?

客户端与mysql服务端进行查询操作,查询操作的时候如果获取的数据量比较大,那个这个查询结果放在哪里呢?

有两个地方可以放:客户端的缓冲区和服务端的缓冲区。

我们这里说的buffer指的是客户端的缓冲区,如果查询结果已经从服务端获取回来了,放置在了客户端的缓冲区,我们就称之为使用buffer。如果还是存放在服务端的缓冲区的话,我们就说没有使用buffer(unbuffer)。

使用buffer和不使用buffer有什么区别?

主要在内存方面,使用buffer会增加客户端的内存压力,当返回的数据结果特别大的时候可能会占用调用客户端(实际就是一个php进程)比较大的进程。不使用buffer自然对服务端(这里说的是提供mysql服务的服务器)压力更大。

php中三种模式是如何设置是否使用buffer的?

mysql默认的query是使用buffer的,而不使用buffer就需要使用mysql_unbuffer_query

mysqli默认的query是不使用buffer的,要使用buffer就需要设置MYSQLI_STORE_RESULT

pdo默认的quey是不使用buffer的,要使用buffer就需要设置MYSQL_ATTR_USE_BUFFERED_QUERY

大致相关代码如下: <?php

$dbConfig = array(

'host' => '10.128.11.101',

'port' => '3306',

'user' => 'test',

'pass' => 'test',

'db' => 'test',

);

$sql = 'select * from so_topic_app';

//---------mysql----------//

$db = mysql_connect($dbConfig['host'], $dbConfig['user'], $dbConfig['pass']);

mysql_select_db($dbConfig['db'], $db);

mysql_set_charset('utf8', $db);

// mysql使用buffer

$res = mysql_query($sql, $db);

$data = array();

while($row = mysql_fetch_row($res)) {

$data[] = $row;

}

// mysql不使用buffer

$res = mysql_unbuffered_query($sql, $db);

$data = array();

while($row = mysql_fetch_row($res)) {

$data[] = $row;

}

mysql_close($db);

//---------mysqli----------//

$db = mysqli_connect($dbConfig['host'], $dbConfig['user'], $dbConfig['pass'], $dbConfig['db']);

// mysqli不使用buffer

$result = mysqli_query($db, $sql);

$data = array();

while($row = $result->fetch_array()) {

$data[] = $row;

}

// mysqli使用buffer

$result = mysqli_query($db, $sql, MYSQLI_STORE_RESULT);

$data = array();

while($row = $result->fetch_array()) {

$data[] = $row;

}

mysqli_free_result($result);

mysqli_close($db);

//---------pdo----------//

$dsn = "mysql:dbname={$dbConfig['db']};host={$dbConfig['host']}";

$pdo = new PDO($dsn, $dbConfig['user'], $dbConfig['pass']);

// pdo不使用buffer

$stmt = $pdo->prepare($sql);

$stmt->execute();

$data = array();

$data = $stmt->fetchAll();

// pdo使用buffer

$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);

$stmt = $pdo->prepare($sql);

$stmt->execute();

$data = array();

$data = $stmt->fetchAll();

后续

当然如果数据量非常大的话,大部分人还是会考虑使用分批次来提取和处理数据。所以实际上需要我们关注和使用mysql是使用buffer还是不使用buffer的场景非常少。

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

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

相关文章

AliOS Things自组织网络安全认证架构概述

摘要&#xff1a; AliOS Things自组织网络&#xff08;uMesh&#xff09;结合阿里云Link ID设备身份认证平台为物联网嵌入式设备提供了自主安全认证授权接入无线mesh网络的解决方案&#xff0c;并且兼容IEEE802.1X端口控制访问协议和EAP&#xff08;RFC3748&#xff09;扩展认证…

屡试不爽的互联网架构三大马车!

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;朱晔来源&#xff1a;https://www.cnblogs.com/lovecindywang/p/9617542.html这里所说的三架马车是指微服务、消息队列和定时任务。如下图所示&#xff0c;这里是一个三驾马车共同驱动的一个立体的互联网项目的架构…

如何像阿里巴巴一样高效跨企业项目协作

摘要&#xff1a; 在云效Work Like Alibaba第五期直播中&#xff0c;阿里巴巴研发协同平台高级技术专家&#xff0c;云效项目协作域的技术负责人余鹏&#xff08;花名秉承&#xff09;带来了《如何像阿里巴巴一样高效跨企业项目协作》的精彩分享。本次分享主要介绍阿里巴巴是如…

Flowable 6.4.1数据库自动建表错误 SQLSyntaxErrorException: Table 'flowable.act_id_property' doesn't exist

跟着官方Demo学flowable6.4.1&#xff0c;在内存里建表没问题&#xff0c;移到数据库建表就报错 请教了大神才知道&#xff0c;是因为之前本机上建过相同的表&#xff08;Mysql8.0以上版本改成了false&#xff09;&#xff0c;解决办法就是设置默认在本数据库建表&#xff0c…

mysql csdn 知乎_CSDN 怎么样?

按照程序员的风格&#xff0c;无论是学习一门新语言还是搭建某个框架&#xff0c;习惯性上来就是一个HelloWorld&#xff0c;因为计算机的开山鼻祖当年用计算机向人类发出的第一声呐喊就是这么做的&#xff0c;但是今天却不得不得以再见CSDN来开启我个人博客的生涯。从标题中开…

MaxCompute - ODPS重装上阵 第一弹 - 善用MaxCompute编译器的错误和警告

摘要&#xff1a; MaxCompute (ODPS) ( 注1 )是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用&#xff0c;支撑了多个BU的核心业务。 ODPS2.0除了持续优化性能外&#xff0c;也致力于提升SQL语言的用户体验和表达能力&#xff0c;提高广…

双十一丝般顺滑体验背后:阿里云洛神网络虚拟化系统揭秘

摘要&#xff1a; 摘要&#xff1a;2017年12月20日在北京云栖大会上&#xff0c;阿里云高级技术专家梵叶在计算与网络分论坛上做了主题分享《双十一丝般顺滑体验背后&#xff1a;阿里云洛神网络虚拟化系统揭秘》。为大家介绍了洛神系统的发展过程&#xff0c;系统架构&#xff…

Springboot-Flowable 快速开发工作流

文章目录一、什么是flowable&#xff1f;官方文档&#xff1a;二、技术选型三、Flowable与springBoot项目整合3.1. 添加依赖3.2. yml 文件配置3.3. 创建数据库3.4. 定义流程文件3.5. 测试controller3.6. 图片乱码处理四、启动项目&#xff0c;初始化表结构五、测试验证5.1. 创建…

华为发布智简全光网战略,携手上下游重新定义光产业

[中国&#xff0c;北京&#xff0c;2019年7月15日] 今日&#xff0c;华为正式发布智简全光网战略&#xff0c;通过打造智能、极简、超宽、无处不在的下一代全光网络&#xff0c;为每个人、每个家庭、每个组织带来极致的业务体验。基于该战略&#xff0c;未来5年华为将携手上下游…

mysql+json+检索_如何从mysql中检索JSON数据?

我有以下表格和他们的关系.我将json数据存储在client_services表中.他们是否可以使用mysql查询检索JSON值.喜欢&#xff1a;select getJson("quota") as quota, client_id from client_services where service_id 1;要么我可以进一步规范化client_services表吗&#…

测试之道--阿里巴巴八年测试专家倾情奉献

摘要&#xff1a; 我从事测试工作将近八年了&#xff0c;从起初的不懂测试&#xff0c;怀疑测试&#xff0c;到相信测试&#xff0c;再到坚定测试&#xff0c;其中经历的辛酸、煎熬无法言表。在从事测试工作的这八年里&#xff0c;有人质疑&#xff0c;也有人追捧&#xff0c;唇…

AliOS Things蓝牙协议栈及应用开发框架介绍

摘要&#xff1a; AliOS Things从1.2.0版本开始支持蓝牙协议栈(BLE)&#xff0c;及基于蓝牙协议栈的应用层开发框架。本文分为三部分对蓝牙组件进行介绍&#xff1a;蓝牙组件&#xff0c;蓝牙协议栈介绍及接口说明&#xff0c;和应用开发框架介绍及示例说明。AliOS Things v1.2…

快速开发工作流_01_简单流程案例

文章目录一、介绍二、技术选型三、登录/绘制流程图3.1. 需要先登录3.2. 绘制流程图四、 使用说明4.1. 选择数据库4.2. 增加 mybatis, modeler,idm 等配置4.3. yml 文件配置五、定义流程文件这样当此框架启动的时候它会默认加载resource目录下的processes时就可以将此流程配置加…

Spark精华问答 | Spark和Hadoop的架构区别解读

总的来说&#xff0c;Spark采用更先进的架构&#xff0c;使得灵活性、易用性、性能等方面都比Hadoop更有优势&#xff0c;有取代Hadoop的趋势&#xff0c;但其稳定性有待进一步提高。我总结&#xff0c;具体表现在如下几个方面。1Q&#xff1a;Spark和Hadoop的架构区别A&#x…

apache gobblin mysql_incubator-gobblin-master

文件名大小更新时间incubator-gobblin-master02018-03-06incubator-gobblin-master\.github02018-03-06incubator-gobblin-master\.github\PULL_REQUEST_TEMPLATE.md11762018-03-06incubator-gobblin-master\.gitignore7922018-03-06incubator-gobblin-master\.travis.yml84620…

7类合作伙伴,190条沟通路径,高德汽车如何实现组织高效沟通?

摘要&#xff1a; 通常协同开发组织或团队大于等于7&#xff0c;关键干系人大于等于10&#xff0c;组织级沟通路径大于等于21条&#xff0c;关键干系人沟通路径大于等于45条&#xff0c;并以较大角系数递增。这种沟通路径曲线下&#xff0c;如何让组织信息快速传递&#xff1f;…

MaxCompute - ODPS重装上阵 第二弹 - 新的基本数据类型与内建函数

摘要&#xff1a; MaxCompute&#xff08;原ODPS&#xff09;是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用&#xff0c;支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外&#xff0c;也致力于提升SQL语言的用户体验和表达能力…

Flowable BPMN 用户手册 (v 6.5.0-SNAPSHOT)

http://www.shareniu.com/flowable6.5_zh_document/bpm/index.html#

@程序员:可以被认出是写代码的,但是不能因为格子衬衫!

戳蓝字“CSDN云计算”关注我们哦&#xff01;亲爱的&#xff0c;我今天穿什么衣服比较好呢&#xff1f;你女朋友早上是否也会站在试衣镜前这样询问你&#xff1f;醒醒&#xff0c;你哪里有女朋友&#xff01;你分得清人家衣服的&#xff1f;比如&#xff1a;裤子&#xff1a;背…

助力全站WebP ,阿里云云上FPGA 团队发布 WebP图片解决方案

摘要&#xff1a; 阿里云 WebP 图片解决方案的软件部分由联捷计算科技&#xff08;CTAccel&#xff09;提供&#xff0c;再整合上阿里云自身的FaaS (FPGA as a Service) 弹性计算平台&#xff0c;形成了完整的阿里云 WebP 图片解决方案。 点此查看原文 目前来说&#xff0c;图片…