2012-03-23 67 views
-2

我有一个问题,即时工作的脚本,它一切都很好,直到突然它需要主页1.2分钟加载,经过很多评论和取消注释后,我发现了以下功能是让一切慢:功能,减慢php页

function toFollow(){ 
    $sql = "SELECT id FROM tofollow WHERE enabled = '1'"; 
    if (!$result = mysql_query($sql)) { 
     return 'A error occured: ' . mysql_error(); 
    } 
    while ($row = mysql_fetch_assoc($result)) { 
     $users[] = $row['id']; 
    } 
    return $users; 
} 

UPDATE:

我发现了问题,在相同的脚本我运行什么:

foreach(toFollow() as $user){ 
    $connection->post('friendships/destroy', array('user_id' => $user)); 
    $count++; 
} 

所以,我只是把它改为:

$tofollow = toFollow();  
foreach($tofollow as $user){ 
    $connection->post('friendships/destroy', array('user_id' => $user)); 
    $count++; 
} 

它的工作原理! (我还是不明白是什么问题)

谢谢大家!

有什么建议吗?

+0

**也绝对没有错,这个功能本身**你必须提供关于什么是表tofollow和$用户数组的大小至少信息? – 2012-03-23 04:59:56

+2

问题在于你在foreach循环的每次迭代中调用toFollow()函数。 – sikander 2012-03-23 05:22:25

回答

0

如果还不存在,请在enabled上创建一个索引。有关索引这里

的更多信息:How does database indexing work?

+1

索引实际上有助于显着加快数据检索速度,所以这并不是一个糟糕的建议,因为用户最初发布的信息很少。无论如何... – sikander 2012-03-23 05:23:54