20MM を超えるエントリを持つデータベースに対してクエリを作成しています。つまり、クエリをいくつかの小さなクエリに分割しています。
問題は、20MM エントリを取得しようとすると、ページが読み込まれず、次の通知が表示されることです。MySQL サーバーがなくなり、タイトルとコンテンツのない空白の画面が表示されます。ただし、5MM エントリをフェッチすると、ページは正しく読み込まれ、コンテンツが表示されます。
これが私のコードです
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
ini_set('memory_limit', '1000M');
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;
誰かがこれで私を助けてくれれば幸いです。ありがとう