2011-06-15 23 views
2

我當計算所有行的MySQL表的我怎麼算不得到致命錯誤總在MySQL行:允許內存

$query = $db->query("SELECT * FROM table"); 
$count = $db->num_rows($query); 

echo $count; 

總計約行17K有一個問題Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 141954624 bytes)和我Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 141954624 bytes)。讓我知道,如何解決它。

回答

5

你可以改變你的SQL查詢來......

SELECT COUNT(*) AS `rows_count` FROM `table`; 

那麼你不必加載這麼大的記錄,只是然後用連續計數功能獲得的行數。

+0

+1因爲比我快。友好建議:避免使用保留字作爲列表別名。 – Asaph 2011-06-15 06:01:34

+0

@Asaph哎呀,我甚至沒有意識到我已經做到了:)謝謝。 – alex 2011-06-15 06:02:18

+0

@alex:感謝您對它進行更改。如果您使用反引號包圍列別名,它的工作方式會很好。但是這樣更好。 – Asaph 2011-06-15 06:06:54

相關問題