2011-05-25 41 views
0

我有一個循環遍歷MySQL表(約600,000行)的PHP 5腳本,並且對於每行,基於源表的每一行上的列的16個其他彙總信息表(這通過檢查彙總行是否存在來完成,如果是的話,更新它,否則插入它)。處理大量行時MySQL 5.1內存泄漏

問題是,隨着進程的繼續,mysqld.exe進程會佔用越來越多的內存,直到耗盡系統並崩潰PHP腳本。 PHP腳本沒有獲得內存,只有mysqld.exe進程。在PHP腳本中,每個從表中讀取都是免費的($resultset->free()聲明),所以一切都會好的。

+0

你將不得不表現出一定的代碼是什麼?你正在運行的查詢類型,任何臨時表或變量等......可能性是你的過程可以被優化,以便一次總結所有內容,而不是一次一行。 – Fosco 2011-05-25 16:17:56

+0

您還應該查看/發佈您的'my.cnf'(或者可能是Windows中的'my.ini')。那裏有內存限制。 – 2011-05-25 16:59:44

回答

0

你確定你沒有達到最大執行時間嗎?當您直接執行查詢時,查詢速度有多快?

+0

感謝您的答案 - 它不是MySQL,而是一個使用內存的第三方驅動程序的COM調用 - 我的不好:) – 2013-07-29 16:13:10

0

感謝您的答案 - 它不是MySQL,但是一個COM調用該用的是內存中的第三方驅動程序 - 我的壞:)