Edit report at https://bugs.php.net/bug.php?id=61060&edit=1
ID: 61060
Comment by: jim at bladehq dot com
Reported by: trusty_jim at hotmail dot com
Summary: MySQL memory leak
Status: Open
Type: Bug
Package: MySQL related
Operating System: Windows Vista
PHP Version: 5.3.10
Block user comment: N
Private report: N
New Comment:
I have experienced this issue too. It appears to only leak memory when the
query is SELECT *. This has caused our application to run out of memory when
iterating over large result sets.
Previous Comments:
------------------------------------------------------------------------
[2012-02-12 03:50:28] trusty_jim at hotmail dot com
Description:
------------
Fetching data through mysql_fetch_assoc() causes php memory usage to go up
after
each query.
This occurs even after unsetting the retrieved data.
Test script:
---------------
<?php
$db = mysql_connect(DB_DOMAIN, DB_USERNAME, DB_PASS, true);
echo "Start Memory : ".memory_get_usage()."\n";
$result = mysql_query('SELECT * FROM addr', $db);
for ($i = 0; $i < 10; $i++) {
$row = mysql_fetch_assoc($result);
if ($row === false) break;
unset($row);
gc_collect_cycles();
echo " ".memory_get_usage()."\n";
}
mysql_free_result($result);
echo "End Memory : ".memory_get_usage()."\n";
?>
Expected result:
----------------
Memory usage should be similar after each execution
Start Memory : 31108008
65407576
65407576
65407576
65407576
65407576
65407576
65407576
65407576
65407576
65407576
End Memory : 31108160
Actual result:
--------------
Memory usage increases significantly after each execution
Start Memory : 31108008
65407576
65408120
65408664
65409208
65409752
65410296
65410840
65411384
65411944
65412488
End Memory : 31108160
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=61060&edit=1