ID: 30194
User updated by: phoeniks2k at mail dot ru
Reported By: phoeniks2k at mail dot ru
-Status: Feedback
+Status: Open
Bug Type: MySQLi related
Operating System: All
PHP Version: 5.0.1
New Comment:
<?php
function getmicrotime() {
list($usec, $sec) = explode(" ", microtime());
return ((double)$usec + (double)$sec);
}
$host = 'localhost';
$login = 'parallax';
$password = 'parallax';
$db_name = 'parallax_kernel';
$link = mysqli_init();
mysqli_real_connect($link, $host, $login, $password, $db_name);
$st = mysqli_prepare($link, "SELECT id, title, proto, lnk4, mdf, xml
FROM objects_hier oh WHERE owner = ?");
$info = array();
$owner = 0;
mysqli_stmt_bind_param($st, 'i', $owner);
/*---------------------------------------------------------*/
$t = getmicrotime();
for ($owner = 0; $owner < 20; $owner++) {
mysqli_stmt_execute($st);
mysqli_stmt_bind_result($st, $info['id'], $info['title'],
$info['proto'], $info['lnk4'], $info['mdf'], $info['xml']);
while (mysqli_fetch($st)) {
// some data manipulations that are equiv. those in query
}
mysqli_stmt_free_result($st);
}
echo (getmicrotime() - $t).'<br>';
/*--------------------------------------------------------*/
$t = getmicrotime();
for ($owner = 0; $owner < 20; $owner++) {
$recordset = mysqli_query($link, "SELECT id, title, proto, lnk4, mdf,
xml FROM objects_hier oh WHERE owner = $owner");
while ($row = mysqli_fetch_assoc($recordset)) {
// some data manipulations that are equiv. those in stmt
}
mysqli_free_result($recordset);
}
echo (getmicrotime() - $t).'<br>';
?>
Previous Comments:
------------------------------------------------------------------------
[2004-09-29 12:10:42] [EMAIL PROTECTED]
Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves.
A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external
resources such as databases, etc.
If possible, make the script source available online and provide
an URL to it here. Try avoid embedding huge scripts into the report.
Please read the comments more carefully.
As I mentioned before, add a short reproducible testcase.
------------------------------------------------------------------------
[2004-09-29 11:50:23] phoeniks2k at mail dot ru
In another words reading clobs from statement results looks much slower
then reading those from simple select results
------------------------------------------------------------------------
[2004-09-29 11:44:16] phoeniks2k at mail dot ru
No, i ment another thing.
Every query\stmt is executed multiple times (stmts are prepared only
once)
This statement
SELECT id, title, proto, lnk4, mdf FROM objects_hier oh WHERE owner =
?
works FASTER then query
SELECT id, title, proto, lnk4, mdf FROM objects_hier
WHERE owner = $owner_id
But this statement (i marked clob field)
SELECT id, title, proto, lnk4, mdf, xml_data <<<(clob) FROM
objects_hier oh WHERE owner = ?
works MUCH SLOWER then query
SELECT id, title, proto, lnk4, mdf, xml_data <<<(clob) FROM
objects_hier
WHERE owner = $owner_id
Every time ALL DATA is fetched from recordsets to script variables,
everything is made as it was described in DOC and is identical by
result except exec time
------------------------------------------------------------------------
[2004-09-29 11:16:07] [EMAIL PROTECTED]
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php
Retrieving only a single recordset with a prepared
statement is of course slower. Why do you use
mysqli_stmt_store_result? The first recordset is already
sent to client after mysqli_stmt_execute.
Also there is no reproducible testcase in your bug report.
------------------------------------------------------------------------
[2004-09-22 14:38:07] phoeniks2k at mail dot ru
Sorry, some additional info:
Mysql 4.1.4 Gamma and clobs are not empty
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/30194
--
Edit this bug report at http://bugs.php.net/?id=30194&edit=1