php读写上亿记录数据库测试

在Intel Core2 Quad Q6600处理器和4GB内存的环境下,对哈希型数据库和Table数据库进行PHP读写测试。哈希型数据库写入500万到2000万条记录的时间在309至1289秒之间,读取时间稳定在490-770毫秒。Table数据库写入10万至200万条记录的时间在20至293秒,读取速度受返回信息量影响。
摘要由CSDN通过智能技术生成

硬件: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数据库   
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值