我数据库有一万多条数据,查询一组10条的数据基本在0.077秒左右
代码:
function get random_data($table,$num){
$countcus = db($table)->count();
$min = db($table)->min('id');
$max = $min+$countcus;
if($countcus < $num){$num = $countcus;}
$i = 1;
$flag = 0;
$ary = array();
while($i<=$num){
$rundnum = rand($min, $max);
if($flag != $rundnum){
if(!in_array($rundnum,$ary)){
$ary[] = $rundnum;
$flag = $rundnum;
}else{
$i--;
}
$i++;
}
}
$data = db($table)->where('id','in',$ary,'or')->select();
return $data;
}
本文介绍了一种从数据库中快速抽取指定数量随机数据的方法,通过合理利用数据库ID范围和随机数生成,实现对大规模数据集的有效查询,显著提升了数据检索效率。
2441

被折叠的 条评论
为什么被折叠?



