- 论坛徽章:
- 1
|
直接贴一个吧:
<?php
// --------------------------------------------------------------------------
// File name : test_speed.php
// Description : mysql结果集获取函数测试
// Requirement : PHP5 (http://www.php.net)
// --------------------------------------------------------------------------
define('DATA_COUNT',100000); //数据表的记录总数
define('TEST_COUNT',100); //每轮测试循环总数
mysql_connect('localhost','root','123456') or die(mysql_error());
mysql_select_db('test') or die(mysql_error());
mysql_query('CREATE TABLE IF NOT EXISTS `test_speed` (`id` int(10) NOT NULL auto_increment, `md5` char(32) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MEMORY;') or die(mysql_error());
mysql_query('TRUNCATE TABLE `test_speed`') or die(mysql_error());
$t = microtime(true);
{
$query = 'INSERT INTO test_speed (`md5`) VALUES (MD5('.implode(')),(MD5(',range(1,DATA_COUNT,1)).'));';
mysql_query($query) or die(mysql_error());
}
printf("insert:%f\n",microtime(true)-$t);
$query = "SELECT SQL_CACHE * FROM test_speed";
$res = mysql_query($query) or die(mysql_error());
{
mysql_data_seek($res,0) or die(mysql_error());
mysql_fetch_assoc($res) or die(mysql_error());
mysql_fetch_row($res) or die(mysql_error());
mysql_fetch_array($res) or die(mysql_error());
mysql_fetch_object($res) or die(mysql_error());
}
for($i=0,$t=microtime(true);$i<TEST_COUNT;$i++)
{
$res = mysql_query($query);
}
printf("mysql_query:\t%f\n",microtime(true)-$t);
for($i=0,$t=microtime(true);$i<TEST_COUNT;$i++)
{
mysql_data_seek($res,0);
}
printf("mysql_data_seek:\t%f\n\n\n",microtime(true)-$t);
for($i=0,$t = microtime(true);$i<TEST_COUNT;$i++)
{
mysql_data_seek($res,0);
while($row = mysql_fetch_assoc($res)){
}
}
printf("mysql_fetch_assoc:\t%f\n",microtime(true)-$t);
for($i=0,$t = microtime(true);$i<TEST_COUNT;$i++)
{
mysql_data_seek($res,0);
while($row = mysql_fetch_row($res)){
}
}
printf("mysql_fetch_row:\t%f\n",microtime(true)-$t);
for($i=0,$t = microtime(true);$i<TEST_COUNT;$i++)
{
mysql_data_seek($res,0);
while($row = mysql_fetch_array($res)){
}
}
printf("mysql_fetch_array:\t%f\n",microtime(true)-$t);
for($i=0,$t = microtime(true);$i<TEST_COUNT;$i++)
{
mysql_data_seek($res,0);
while($row = mysql_fetch_object($res)){
}
}
printf("mysql_fetch_object:\t%f\n",microtime(true)-$t);
mysql_close();
?> |
|
|