【发布时间】:2014-07-01 06:56:04
【问题描述】:
我尝试了一项活动来检查是否有
> FOR/WHILE 循环
如果遍历几百万条记录,则失败与否 ....
我的活动
我在一个表中有超过 1000000 条记录,如果我获取它们并打印它们
通过for循环并使用命令行执行此脚本,它成功运行..
但是当我在网络浏览器中尝试它时,它卡住并关闭了我的浏览器......
所以我想知道这是 PHP 的失败(显然不是在命令行中工作)..
或者是WEB SERVER故障???
如果我必须在实时网络应用程序中遇到这种情况怎么办??
如果是,我应该切换到更强大的网络服务器,然后是哪个...??
【问题讨论】:
-
in real time web application,没有。您从不想打印数百万行,听说过分页吗? -
如果我需要合并来自多个表的数据怎么办?连接是没用的,因为我需要手动获取/处理这些记录,因为它们有特殊的操作要执行......显然我不会打印数百万条记录但我需要计算它们(用于获取页数),因为它需要相同的循环......我知道它有点难以消化,但这是我能做到的唯一方法......无论如何谢谢......
-
为了解决你只从数据集中返回你想要的东西的问题,为了获得分页的总计数你做一个
SELECT COUNT..你不要获取所有行然后计算它们在 php 中。 -
我必须对记录执行一些特殊的逻辑过滤,所以在这种情况下我不能使用 SQL 的 where 操作,因此 COUNT 在这种情况下将不起作用。
-
所以它实际上只是一个XY problem,因为您无法优化非规范化数据集上的 sql 查询。