我正在对超过20MM条目的数据库进行查询,这意味着我将查询分成几个较小的查询。
问题是,如果我尝试获取页面未加载的20MM条目,并显示空白屏幕,没有标题和内容。但是,如果我获取5MM条目,页面会正确加载,并显示内容:
这是我的代码
for($n=0; $n<20000000; $n=$n+500000){
$m=500000;
$query = "SELECT * FROM user_likes LIMIT ". $n .",". $m;
//echo $query;
$result = mysql_query($query) or die(mysql_error());
// craete arrays
while($row = mysql_fetch_array($result)){
set_time_limit(0);
$like[$row['name']]=$like[$row['name']]+1;
if($like[$row['name']]==375) $likes375 ++;
}
}
// print the size
echo count($like)."<br>";
echo "375: ".$likes375;
如果有人可以帮助我,我将不胜感激。 感谢
修改
添加error_reporting(E_ALL);
后显示此通知:MySQL服务器已消失
答案 0 :(得分:1)
原因在于,当MySQL通过索引查找结果时,您的页面将为空白。过了一会儿,这会超时(取决于你的设置)。这就是为什么在小型查询中不会发生这种情况。
答案 1 :(得分:1)
这是由于php脚本的执行时间限制,默认情况下php脚本会在超时之前运行总共45秒......
只需在<?php
set_time_limit(0); // 0 means unlimited
编辑:
尝试通过以下方式为此文件设置错误日志:
ini_set("log_errors" , "1");
ini_set("error_log" , "eorrors.txt");
ini_set("display_errors" , "0");