Edit report at http://bugs.php.net/bug.php?id=53482&edit=1

 ID:                 53482
 Updated by:         [email protected]
 Reported by:        iradu at unix-world dot org
 Summary:            Mysqli Object use is much slower than Mysqli
                     procedural use
-Status:             Open
+Status:             Bogus
 Type:               Bug
 Package:            MySQLi related
 Operating System:   Any
 PHP Version:        5.3.3
-Block user comment: N
+Block user comment: Y
 Private report:     N

 New Comment:

Please stick to the point (no dumbness considerations), avoid posting
big scripts and please indent them properly so they're legible. Your
test is also flawed because you use microtime() instead of
microtime(true).



I'd say it's possible object use is *marginally* slower than procedural
use, but you haven't shown even that.



If you still find procedural use is significantly faster (> 10%), you
can submit a new bug report, but please follow the guidelines above.



Thank you.


Previous Comments:
------------------------------------------------------------------------
[2010-12-06 11:40:42] iradu at unix-world dot org

Procedural:

test 1: 0.4619922161

test 2: 0.4763075113

test 3: 0.43635993

Object:

test 1: 0.4942417717

test 2: 0.4999971008

test 3: 0.498214469



Procedural wins 3 of 4 tests, object oriented wins 1 of 4 tests.



Post what you think about all this.

------------------------------------------------------------------------
[2010-12-06 11:34:29] iradu at unix-world dot org

Description:
------------
mysqli_query()

is MUCH MUCH FASTER than

mysqli::query()



also MySQL PDO sucks as PDO is for dumb developers.





Test script:
---------------
==== OBJECT STYLE:



<?php

echo 'object:<br>';

for($y=0;$y<10;++$y){

$mtime='';$starttime='';$isql=array();$mysqli='';$i=1;$query='';$array=array();$result='';$row=array();

$mtime = explode(' ',microtime());$mtime = (float)$mtime[1] +
(float)$mtime[0];$starttime = $mtime;

include 'isett.iphp';

$mysqli=new mysqli($isql['h'],$isql['u'],$isql['p'],$isql['d']);

if(mysqli_connect_errno()) die('Connection Error
'.mysqli_connect_errno().' : '.mysqli_connect_error());

$mysqli->set_charset('utf8');



$mysqli->query("CREATE TABLE IF NOT EXISTS persad_dsa (`id` SMALLINT(3)
UNSIGNED NOT NULL AUTO_INCREMENT,`a_name` VARCHAR(100) CHARACTER SET
utf8 COLLATE utf8_general_ci NOT NULL,`a_desc` VARCHAR(200) CHARACTER
SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY
KEY(`id`))ENGINE=MYISAM");



for($i=1;$i<2000;++$i){

  $mysqli->query('INSERT INTO persad_dsa (a_name,a_desc)
VALUES(\'=+=+=+=+=+'.($i+1000).'+=+=+=+=+=\',\'------------------------------------------------'.($i+321).'-------\')');

}



$query="SELECT * FROM persad_dsa";

if($result=$mysqli->query($query)){

  while($row=$result->fetch_assoc()){

        $array[]='|-'.$row['id'].'|'.$row['a_name'].'|'.$row['a_desc'].'-|';

  }

  $result->close();

}

$mysqli->query("DROP TABLE IF EXISTS persad_dsa");

$mysqli->close();

$mtime = explode(' ',microtime());$mtime = (float)$mtime[1] +
(float)$mtime[0];echo $mtime-$starttime.'<br>';

$mtime='';$starttime='';$isql=array();$mysqli='';$i=1;$query='';$array=array();$result='';$row=array();

}

echo '---<br>procedural:<br>';

for($y=0;$y<10;++$y){

$mtime='';$starttime='';$isql=array();$mysqli='';$i=1;$query='';$array=array();$result='';$row=array();

$mtime = explode(' ',microtime());$mtime = (float)$mtime[1] +
(float)$mtime[0];$starttime = $mtime;

include 'isett.iphp';

$mysqli=mysqli_connect($isql['h'],$isql['u'],$isql['p'],$isql['d']);

if(mysqli_connect_errno()) die('Connection Error
'.mysqli_connect_errno().' : '.mysqli_connect_error());

mysqli_set_charset($mysqli,'utf8');



mysqli_query($mysqli,"CREATE TABLE IF NOT EXISTS persad_dsa (`id`
SMALLINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,`a_name` VARCHAR(100)
CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`a_desc`
VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY
KEY(`id`))ENGINE=MYISAM");



for($i=1;$i<2000;++$i){

  mysqli_query($mysqli,'INSERT INTO persad_dsa (a_name,a_desc)
VALUES(\'=+=+=+=+=+'.($i+1000).'+=+=+=+=+=\',\'------------------------------------------------'.($i+321).'-------\')');

}



$query="SELECT * FROM persad_dsa";

if($result=mysqli_query($mysqli,$query)){

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

        $array[]='|-'.$row['id'].'|'.$row['a_name'].'|'.$row['a_desc'].'-|';

  }

  mysqli_free_result($result);

}

mysqli_query($mysqli,"DROP TABLE IF EXISTS persad_dsa");

mysqli_close($mysqli);

$mtime = explode(' ',microtime());$mtime = (float)$mtime[1] +
(float)$mtime[0];echo $mtime-$starttime.'<br>';

$mtime='';$starttime='';$isql=array();$mysqli='';$i=1;$query='';$array=array();$result='';$row=array();

}



?>



//==== PROCEDURAL STYLE



<?php

echo 'procedural:<br>';

for($y=0;$y<10;++$y){

$mtime='';$starttime='';$isql=array();$mysqli='';$i=1;$query='';$array=array();$result='';$row=array();

$mtime = explode(' ',microtime());$mtime = (float)$mtime[1] +
(float)$mtime[0];$starttime = $mtime;

include 'isett.iphp';

$mysqli=mysqli_connect($isql['h'],$isql['u'],$isql['p'],$isql['d']);

if(mysqli_connect_errno()) die('Connection Error
'.mysqli_connect_errno().' : '.mysqli_connect_error());

mysqli_set_charset($mysqli,'utf8');



mysqli_query($mysqli,"CREATE TABLE IF NOT EXISTS persad_dsa (`id`
SMALLINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,`a_name` VARCHAR(100)
CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`a_desc`
VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY
KEY(`id`))ENGINE=MYISAM");



for($i=1;$i<2000;++$i){

  mysqli_query($mysqli,'INSERT INTO persad_dsa (a_name,a_desc)
VALUES(\'=+=+=+=+=+'.($i+1000).'+=+=+=+=+=\',\'------------------------------------------------'.($i+321).'-------\')');

}



$query="SELECT * FROM persad_dsa";

if($result=mysqli_query($mysqli,$query)){

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

        $array[]='|-'.$row['id'].'|'.$row['a_name'].'|'.$row['a_desc'].'-|';

  }

  mysqli_free_result($result);

}

mysqli_query($mysqli,"DROP TABLE IF EXISTS persad_dsa");

mysqli_close($mysqli);

$mtime = explode(' ',microtime());$mtime = (float)$mtime[1] +
(float)$mtime[0];echo $mtime-$starttime.'<br>';

$mtime='';$starttime='';$isql=array();$mysqli='';$i=1;$query='';$array=array();$result='';$row=array();

}

echo '---<br>object:<br>';

for($y=0;$y<10;++$y){

$mtime='';$starttime='';$isql=array();$mysqli='';$i=1;$query='';$array=array();$result='';$row=array();

$mtime = explode(' ',microtime());$mtime = (float)$mtime[1] +
(float)$mtime[0];$starttime = $mtime;

include 'isett.iphp';

$mysqli=new mysqli($isql['h'],$isql['u'],$isql['p'],$isql['d']);

if(mysqli_connect_errno()) die('Connection Error
'.mysqli_connect_errno().' : '.mysqli_connect_error());

$mysqli->set_charset('utf8');



$mysqli->query("CREATE TABLE IF NOT EXISTS persad_dsa (`id` SMALLINT(3)
UNSIGNED NOT NULL AUTO_INCREMENT,`a_name` VARCHAR(100) CHARACTER SET
utf8 COLLATE utf8_general_ci NOT NULL,`a_desc` VARCHAR(200) CHARACTER
SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY
KEY(`id`))ENGINE=MYISAM");



for($i=1;$i<2000;++$i){

  $mysqli->query('INSERT INTO persad_dsa (a_name,a_desc)
VALUES(\'=+=+=+=+=+'.($i+1000).'+=+=+=+=+=\',\'------------------------------------------------'.($i+321).'-------\')');

}



$query="SELECT * FROM persad_dsa";

if($result=$mysqli->query($query)){

  while($row=$result->fetch_assoc()){

        $array[]='|-'.$row['id'].'|'.$row['a_name'].'|'.$row['a_desc'].'-|';

  }

  $result->close();

}

$mysqli->query("DROP TABLE IF EXISTS persad_dsa");

$mysqli->close();

$mtime = explode(' ',microtime());$mtime = (float)$mtime[1] +
(float)$mtime[0];echo $mtime-$starttime.'<br>';

$mtime='';$starttime='';$isql=array();$mysqli='';$i=1;$query='';$array=array();$result='';$row=array();

}

?>



//====

Expected result:
----------------
PHP 5.3 is going in a wrong direction dudes !

Actual result:
--------------
I can't predict


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=53482&edit=1

Reply via email to