查询 10000 次。
耗时:680 秒
A服务器负责发送查询请求,B服务器负责将结果查询返回给A服务器,当前数据表有200W条用户记录。
A:
//测试1W次请求 查询平台服务器的时间
function get_69(){
$insert_num = 10000;
echo "查询 {$insert_num} 次。<br>";
$mark_start = time();
for($i=0; $i<=$insert_num; $i++){
//uid 为100W之内的随机数
$uid = rand(2000, 1000000);
$this->curl_get69($uid);
}
$mark_end = time();
$jiange = $mark_end - $mark_start;
echo "耗时:{$jiange} 秒";
}
function curl_get69($uid){
//echo "$uid<Br>";
$url = "http://test.i.com/test/get_userinfo/{$uid}";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 0); // 过滤HTTP头
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 显示输出结果
curl_setopt($curl, CURLOPT_TIMEOUT,0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //SSL证书认证
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); //严格认证
$responseText = curl_exec($curl);
$httpCode = curl_getinfo($curl,CURLINFO_HTTP_CODE);
curl_close($curl);
$return = array(
'return'=>$responseText,
'http_code'=>$httpCode,
);
$data = @json_decode($responseText, 1);
//print_r($data);
return $return;
}
B: 内存4G
function get_userinfo($uid=0){
$DB1 = $this->load->database('69', TRUE);
//echo date("H:i:s")."--{$uid}<br>";
$sql = "SELECT * FROM t_user_test WHERE uid = {$uid} ";
$query = $DB1->query($sql);
echo json_encode($query->row_array(), 1);
exit;
}
增加了更新本地数据库操作后:
$row = $this->curl_get69($uid);
if($row && isset($row['uid'])){
$this->db->where('uid', $row['uid']);
unset($row['uid']);
$this->db->update('t_user_test', $row);
}
查询 10000 次。
耗时:1387 秒