我有这段代码:
$theQuery = mysql_query("SELECT phrase, date from wordList WHERE group='nouns'");
while($getWords=mysql_fetch_array($theQuery)) {
echo "$getWords[phrase] created on $getWords[date]<br>";
}
查询结果有75,000条,每次运行代码都会出错。
我有这段代码:
$theQuery = mysql_query("SELECT phrase, date from wordList WHERE group='nouns'");
while($getWords=mysql_fetch_array($theQuery)) {
echo "$getWords[phrase] created on $getWords[date]<br>";
}
查询结果有75,000条,每次运行代码都会出错。
这里可能涉及到几个问题,都是由于php.ini中的设置引起的。您的脚本可能会超时,因为PHP默认将脚本执行时间最大限制设置为30秒。另一个原因(同样可能)是您达到了脚本内存限制,该限制默认为每个脚本执行8MB。
打开php.ini文件,搜索“资源限制”并进行适当修改。
我猜你超时了MySQL查询,而不是回显结果(从你的标题中可以看出)
你是否尝试在MySQL表上的组列上设置索引?这会减慢你的插入,但应该对选择产生巨大影响。
请参见http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
php.ini是一个不错的第一步,但你可能会发现自己在一个无法更改这些设置以使其正常工作的服务器上。在这种情况下,将你要做的事情分成块可能是有意义的。
例如,如果这是为了输出,你可以使用LIMIT每次运行25000个结果。将输出放入文件中,然后只使用该文件进行输出。如果需要输出保持新鲜,可以使用cron作业每晚/每小时/每天更新文件。