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。

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

mysql_unbuffered_query:unbuffered顾名思义不缓存,意思就是查询结果不缓存。而大多数人用的mysql_query查询结果缓存。

mysql_unbuffered_query的好处:第一是节省内存,第二是它不用等数据获取完全以后操作,直接可以获取一条数据以后就可以操作。它的弊端是mysql_num_rows() 和 mysql_data_seek()对它无效,原因也在于它不缓存数据。下面是一个小例子:

$link = mysql_connect('localhost','root','root');

mysql_select_db('phpcms');

$sql = "SELECT * FROM `phpcms_content`";

//$result = mysql_unbuffered_query($sql,$link);

$result = mysql_query($sql,$link);

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {

printf ("ID: %s Name: %s", $row[0], $row[1]);

}

mysql_data_seek($result,0);

echo "
";

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {

printf ("ID: %s Name: %s", $row[0], $row[1]);

}

mysql_free_result($result);

?>

如果使用mysql_query,则将结果输出两次。若用mysql_unbuffered_query则只能输出结果一次。

mysql_unbuffered_query查询是一边查询一边给出结果.

mysql_query是查询完所有的在给出结果.

如同页面缓存

自己选择吧,不过速度要求不高的话,还是用mysql_query吧

mysql_unbuffered_query的_mysql_query与mysql_unbuffered_query的区别相关推荐

  1. mysql_unbuffered_query的_用mysql_unbuffered_query函数取大数据

    昨天在做项目的时候,因为涉及到数据表结构的改动,需要进行大量数据的导入,那么如何高效的进行是我比较关注的.本文暂且从使用PHP脚本层面上来说,因为使用其他语言或其他方式也可以进行数据的重导. 在讨论这 ...

  2. mysql 性能 比较好_MySQL性能优化的最佳20+条经验

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数 ...

  3. mysql_unbuffered_query pdo_php中mysql操作的buffer知识

    php与mysql的连接有三种方式,mysql,mysqli,pdo.不管使用哪种方式进行连接,都有使用buffer和不使用buffer的区别. 什么叫使用buffer和不使用buffer呢? 客户端 ...

  4. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  5. C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

    最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...

  6. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++

    GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...

  7. Python2 与 Python3 区别

    Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...

  8. Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别

    Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...

  9. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

最新文章

  1. 京东AI战略宏图展现 不枉挖来这么多AI大牛
  2. 成都python工作-在成都学习Python能做什么?到底有没有发展前途?
  3. mysql 降序_MySQL 8 新特性之降序索引底层实现
  4. OpenGL Draw TransformFeedback 绘制变换反馈的实例
  5. WeWork通过向225,000个社区征税来拼命地从Meetup.com榨取现金
  6. 不能使用zsh或myzsh创建/切换 包含#的分支名(zsh: bad pattern: #xxx)
  7. 心理学家发现脚部动作可表现性格特征
  8. 使用java.util.zip包实现根据文件目录控制文件的压缩与解压
  9. [SCM]源码管理 - SVN:externals
  10. 游戏开发之类的初始化成员列表和委托构造函数(C++基础)
  11. 开发者的瑞士军刀「GitHub 热点速览 v.22.04」
  12. 轴承后缀ce和ca_轴承cc和ca与cde4有什么区别
  13. 利用Scrapy爬取豆瓣电影
  14. Python 中常用的保留字(关键字)详解
  15. 【设计】二极管-稳压管稳压电路
  16. 《分布式JAVA应用 基础与实践》 第六章 构建高可用的系统
  17. wxPython PyQT
  18. 爱站权重批量查询 查询爱站的seo权重
  19. 如何使用10个小时搭建出个人域名而又Geek的独立博客?
  20. caxa发生文件读写异常_为什么提示caxa读取文件错误

热门文章

  1. Python实现递归算法
  2. 计算高效,时序一致,超清还原!清华NYU 提出 RRN:视频超分新型递归网络
  3. 用XGBoost调XGBoost?我调我自己?
  4. 【独家揭秘】如何获得60万开发者信任?
  5. E470 外放没声音问题解决
  6. next.js 简单使用
  7. 整形数组按照频率排序
  8. Spring.Web.Mvc 注入(控制器属性注入)
  9. MVC4建立DBContext的EF6数据
  10. cisco 两个设备之间测试吞吐量的一个方法