Edit report at https://bugs.php.net/bug.php?id=71468&edit=1
ID: 71468
Comment by: rendername at gmail dot com
Reported by: ryan dot brothers at gmail dot com
Summary: increased memory usage with mysqli in php 7
Status: Feedback
Type: Bug
Package: MySQLi related
Operating System: Linux
PHP Version: 7.0.2
Block user comment: N
Private report: N
New Comment:
Of course, we use only mysqlnd:
PHP 7 phpinfo()
Client API library version mysqlnd 5.0.12-dev - 20150407 - $Id:
f59eb767fe17a6679589b5c076d9fa88d3d4eac0 $
php7.0 -m|grep mysql
mysqli
mysqlnd
pdo_mysql
PHP 5 phpinfo()
Client API version mysqlnd 5.0.11-dev - 20120503 - $Id: 3c688b6bbc30d36af3ac34fdd4b7b5b787fe5555 $
php5 -m|grep mysql
mysql
mysqli
mysqlnd
pdo_mysql
New Example:
(mysql table pays with 650k rows, getting ID numbers)
...
echo round(memory_get_usage()/1024/1024)."m<br>";
$res=mysqli_query($db,"select id from pays");
echo round(memory_get_usage()/1024/1024)."m<br>";
die();
Output PHP7:
1m
52m
Output PHP5:
1m
11m
PHP7 need 5 times more memory for each Mysql Query
We have debian 8 64 bit + Dotdeb packets with PHP7
Previous Comments:
------------------------------------------------------------------------
[2016-02-22 05:43:48] rasmus@php.net
Are you sure that your mysqli was compiled against mysqlnd in both PHP 5 and PHP 7? On your
phpinfo() page, in the mysqli section, what does it say for "Client API library version"
in both PHP 5 and 7?
The reason being, if PHP 5 was compiled against libmysqlclient then since libmysqlclient does not
use the PHP memory allocator none of the memory allocated by that library is reported by
memory_get_usage(). That doesn't mean it wasn't allocated, of course.
------------------------------------------------------------------------
[2016-02-21 23:00:15] rendername at gmail dot com
We have the same issue, does anyone have any idea?
php5 - 45mb, php7 - 250mb
Debian 8 (jessie) 64bit
------------------------------------------------------------------------
[2016-01-28 11:53:16] ryan dot brothers at gmail dot com
Yes, mysqlnd is used in both. PHP was compiled with --with-mysqli.
------------------------------------------------------------------------
[2016-01-28 03:02:25] laruence@php.net
do they all used mysqlnd?
------------------------------------------------------------------------
[2016-01-27 23:57:23] ryan dot brothers at gmail dot com
Description:
------------
I am seeing an issue in PHP 7 where large database queries are taking up more memory compared to PHP
5.6.
In the below example, PHP 7 uses 8.3MB while PHP 5.6 only uses 1.8MB.
I have placed SQL to create a test table of 100,000 rows at https://drive.google.com/uc?export=download&id=0B37DKbJklxg_Y3NadnRjc2tVbE0.
Is this expected behavior or an issue with PHP 7 memory usage?
Thanks for your help.
Test script:
---------------
<?php
$mysqli = new mysqli('localhost', 'test', 'test', 'test');
$mysqli->real_query("SELECT * FROM a");
$result = $mysqli->store_result();
echo memory_get_usage()."\n";
exit;
Expected result:
----------------
PHP 5.6.17:
1832472
PHP 7.0.2:
1832472 (or close to it)
Actual result:
--------------
PHP 5.6.17:
1832472
PHP 7.0.2:
8356704
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=71468&edit=1