硬件:Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz 4G内存
1、哈希型数据库
第一次写:500万条记录 309秒
第二次写:500万条记录 321秒
第三次写:500万条记录 309秒
第四次写:500万条记录 314秒
第五次写:1000万条记录 601秒
第六次写:1000万条记录 635秒
第七次写:2000万条记录 1289秒
第八次写:4000万条记录 php发生错误无返回信息 但数据都有写到数据库
500 万条记录里 循环1万次查找: 没找到记录时共约490~540毫秒 找到一条记录时共约740~770毫秒
1000万条记录里 循环1万次查找: 没找到记录时共约520~550毫秒 找到一条记录时共约740~770毫秒
1500万条记录里 循环1万次查找: 没找到记录时共约490~550毫秒 找到一条记录时共约630~700毫秒
2000万条记录里 循环1万次查找: 没找到记录时共约490~550毫秒 找到一条记录时共约650~750毫秒
3000万条记录里 循环1万次查找: 没找到记录时共约490~550毫秒 找到一条记录时共约650~750毫秒
4000万条记录里 循环1万次查找: 没找到记录时共约470~550毫秒 找到一条记录时共约650~750毫秒
6000万条记录里 循环1万次查找: 没找到记录时共约470~550毫秒 找到一条记录时共约500~600毫秒
1亿条记录里 循环1万次查找: 没找到记录时共约480~550毫秒 找到一条记录时共约650~750毫秒
官方的测试数据时100万条读0.6秒,写0.7秒。我的测试包含网络存取开销,另外我的服务器还运行其他程序速度比较不稳定。
代码
写:
<?php
set_time_limit(86400);
require_once("inc/comm.inc.php");
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$objTest=ClsTt::getTt("DB");
$time_start = getmicrotime(); //获取程序开始执行的时间
for($i=0;$i<40000000;$i++)
{
$key="h".$i;
$value="h".$i;
$objTest->put($key,$value);
}
$time_end = getmicrotime();
printf ("[页面执行时间: %.2f毫秒]/n/n",($time_end - $time_start)*1000);
ClsTt::delTt("DB");
?>
读:
<?php
set_time_limit(86400);
require_once("inc/comm.inc.php");
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$objTest=ClsTt::getTt("DB");
$time_start = getmicrotime(); //获取程序开始执行的时间
for($i=39990000;$i<40000000;$i++)
{
$out=$objTest->get("h".$i);
}
echo $out;
$time_end = getmicrotime();
printf ("[页面执行时间: %.2f毫秒]/n/n",($time_end - $time_start)*1000);
ClsTt::delTt("DB");
?>
2、Table数据库