查詢 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 秒