【发布时间】:2009-12-14 21:10:14
【问题描述】:
我有一个大约有 100 万行的表。我正在做一个简单的程序,从每一行打印出一个字段。但是,当我开始使用 mysql_pconnect 和 mysql_query 时,查询需要很长时间,我假设查询需要完成,然后才能打印出第一行。有没有办法一次处理一点数据?
--已编辑-- 我不是要检索一小部分数据,我正在寻找一种方法来一次处理数据块(比如获取 10 行、打印 10 行、获取 10 行、打印 10 行等),而不是而不是等待查询检索 100 万行(谁知道多长时间)然后开始打印。
【问题讨论】:
-
尝试使用flush() (br2.php.net/flush)
-
即使您确实在屏幕 10 上一次显示 100 万行,要传输到浏览器和显示的数据量也是非常可笑的。如果您不使用某种分页,可能会使大多数用户的浏览器崩溃。
-
好吧,据我所知,他可能正在打印到 /dev/null。
-
知道打印输出的位置很重要。您不能将 10 行打印到浏览器,获取接下来的 10 行并再次将它们打印到浏览器(您可能可以使用 javascript 来执行此操作,但仅使用 PHP 是不可能的)。
-
既然您不同意彼得斯的回答,也许您可以提供更多信息。很明显,您不是在寻找分页 ;-) 但正如彼得所说,它不应该等待整个查询......那么,输出在哪里?如果它通过http,那么网络服务器可以做一些缓冲,例如..(有人提到flush()可能会有所帮助)尝试使用php-cgi并检查是否有区别..
标签: php sql mysql performance