$s = explode (" ", microtime());
$s = $s[0]+$s[1];
$con = mysqli_connect ('localhost', 'test', 'pass', 'db') or die('Err');
for ($i=0; $i<1000; $i++) {
$stmt = $con -> prepare(" SELECT MAX(id) AS max_id , MIN(id) AS min_id FROM tb ");
$stmt -> execute();
$stmt->bind_result($M,$m);
$stmt->free_result();
$rand = mt_rand($m , $M).'<br/>';
$res = $con -> prepare(" SELECT * FROM tb WHERE id >= ? LIMIT 0,1 ");
$res -> bind_param("s", $rand);
$res -> execute();
$res->free_result();
}
$e = explode (" ", microtime());
$e = $e[0]+$e[1];
echo number_format($e-$s, 4, '.', '');
// and:
$link = mysql_connect ("localhost", "test", "pass") or die();
mysql_select_db ("db") or die ("Unable to select database".mysql_error());
for ($i=0; $i<1000; $i++) {
$range_result = mysql_query(" SELECT MAX(`id`) AS max_id , MIN(`id`) AS min_id FROM tb ");
$range_row = mysql_fetch_object($range_result);
$random = mt_rand($range_row->min_id , $range_row->max_id);
$result = mysql_query(" SELECT * FROM tb WHERE id >= $random LIMIT 0,1 ");
}
chuẩn bị phát biểu defenitly được nhiều hơn nữa an toàn hơn nhưng cũng mỗi nơi nó nói rằng họ là nhanh hơn nhiều NHƯNG trong thử nghiệm của tôi trên các mã trên tôi có: - 2,45 giây cho chuẩn bị phát biểu - 5,05 giây cho Secon ví dụCác câu lệnh chuẩn bị không nên nhanh hơn nhiều?
Bạn nghĩ mình đang làm gì sai? Tôi có nên sử dụng giải pháp thứ hai hay tôi nên cố gắng tối ưu hóa tiêu chuẩn chuẩn bị?
2,45 * nhanh hơn 5,05? –
vui lòng định dạng mã để có thể đọc được. –
OMG .. mọi người có thể không hiểu gì nếu bạn viết như thế này .. định dạng nó đúng cách. –