mysql+init+内存泄漏_PHP,mysql内存泄漏

面对一个问题,我在使用数据库时找不到内存泄漏.该脚本从数据库中获取大量数据,因此内存泄漏至关重要.使用mysqli,mysql或PDO时会出现此问题.

这是测试代码:

$link = mysqli_connect('localhost', 'root', '');

if (!$link) {

die('Connection error: ' . mysql_error());

}

mysqli_select_db($link, 'coolstat.my') or die ('Can\'t use coolstat.my: ' . mysql_error());

for($ii=0; $ii<20000; $ii+=1000){

$sql= "SELECT `codes_data`.* FROM `codes_data` INNER JOIN codes ON codes.siteid= 20 AND codes.codeid=codes_data.codeid LIMIT ".$ii.", ".($ii+1000)."";

///

$data= array();

$result = mysqli_query($link, $sql);

while (($row = mysqli_fetch_array($result))){

$data[]= $row;

}

mysqli_free_result($result);

unset($result);

unset($data);

echo "Memory get_data usage: ".convert_memory_val(memory_get_peak_usage(true))."
\n";

}

mysqli_close($link);

function convert_memory_val($size){

$unit = array('b', 'kb', 'mb', 'gb', 'tb', 'pb');

return @round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $unit[$i];

}

它输出:

Memory get_data usage: 3.25 mb

Memory get_data usage: 6 mb

Memory get_data usage: 9 mb

Memory get_data usage: 11.75 mb

Memory get_data usage: 14.75 mb

Memory get_data usage: 17.75 mb

Memory get_data usage: 20.5 mb

Memory get_data usage: 23.5 mb

Memory get_data usage: 26.5 mb

Memory get_data usage: 29.5 mb

Memory get_data usage: 32.25 mb

Memory get_data usage: 35.25 mb

Memory get_data usage: 38.25 mb

Memory get_data usage: 41.25 mb

Memory get_data usage: 44 mb

Memory get_data usage: 47 mb

Memory get_data usage: 50 mb

Memory get_data usage: 53 mb

Memory get_data usage: 56 mb

Memory get_data usage: 58.75 mb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值