mysql_unbuffered_query和mysql_query各自优势? http://bbs.chinaunix.net/viewthread.php?tid=958067 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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 查询所产生的结果行。 1、mysql_query自动缓存结果集,mysql_unbuffered_query()不是(从字面上不难看出)2、对返回结果集排序先后问题mysql_query是把所有符合条件的结果集取完了后,再排序mysql_unbuffered_query是取出第一条以后就开始排序很明显,两个各有优势,对于大的数据集来说mysql_unbuffered_query非常节约内存,但是对于小的数据集及普通的应用还是mysql_query比较实用 具体的LZ可以看PHPchina的英文手册下面 有很多人提问和简单简单的来讲:mysql_unbuffered_query和mysql_query的区别是什么?$result=mysql_unbuffered_query($sql);mysql一边查询数据库 一旦匹配一条结果 就返还一行 存在内存里面 接着继续查找,返还这个时候你可以利用这个结果(单行做其他处理)$result=mysql_query($sql);mysql会处理完所有匹配 然后返还一个结果集给PHP(或者其他脚本)处理工作机制如何?各自的长处在哪里?比如说你有1亿行数据 要匹配,而你只想查到一个匹配数据 就OK,那么你就可以用mysql_unbuffered_query,查到一个数据,就可以马上处理,然后用mysql_free_result释放资源。而mysql_query必须匹配所有的数据才返回数据集供你继续操作另外MYSQL手册里面提到一个很重要的信息,就是你用mysql_unbuffered_query 返回一条数据后,再用mysql_free_result释放资源,MYSQL还是要继续查询省下的操作,也就是返回所有的数据,然后在释放资源所以我觉得mysql_unbuffered_query的优点更主要在及时反应,不需要等待,当数据量少或者你需要查询的东西少的时候而mysql_query则在需要查询匹配大量的数据集时候 比较有优势。 phpExcel 乱码问题 类方法返回值,奇怪的现象 为什么我PHP函数执行问没有释放内存 求固定时间加上分钟的问题 php 请问怎么去掉字符串第一个逗号 win2000 问事处题! 请教关于自动生成变量名的问题 一个读取文本文件内容的问题! 使用php能否实现在线答疑? AJAX交互中的数据编码问题(前端页面gbk,后端返回为utf-8,ajax获取响应utf-8) 很多网站把http前的小图标都改变了,请问是如何做的?我也搜索了下。 jquery aiax php 传递数组的问题,请教
2、对返回结果集排序先后问题
mysql_query是把所有符合条件的结果集取完了后,再排序
mysql_unbuffered_query是取出第一条以后就开始排序
很明显,两个各有优势,对于大的数据集来说mysql_unbuffered_query非常节约内存,但是对于小的数据集及普通的应用还是mysql_query比较实用
简单的来讲:
mysql_unbuffered_query和mysql_query的区别是什么?
$result=mysql_unbuffered_query($sql);
mysql一边查询数据库 一旦匹配一条结果 就返还一行 存在内存里面 接着继续查找,返还
这个时候你可以利用这个结果(单行做其他处理)$result=mysql_query($sql);
mysql会处理完所有匹配 然后返还一个结果集给PHP(或者其他脚本)处理工作机制如何?各自的长处在哪里?比如说你有1亿行数据 要匹配,而你只想查到一个匹配数据 就OK,那么你就可以用mysql_unbuffered_query,查到一个数据,就可以马上处理,然后用mysql_free_result释放资源。而mysql_query必须匹配所有的数据才返回数据集供你继续操作另外MYSQL手册里面提到一个很重要的信息,就是你用mysql_unbuffered_query 返回一条数据后,再用mysql_free_result释放资源,MYSQL还是要继续查询省下的操作,也就是返回所有的数据,然后在释放资源
所以我觉得mysql_unbuffered_query的优点更主要在及时反应,不需要等待,当数据量少或者你需要查询的东西少的时候而mysql_query则在需要查询匹配大量的数据集时候 比较有优势。