2012-03-23 57 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