aci*_*aul 1 php mysql arrays
我有一个由连接组成的查询,输出大约有30,000多条记录.我想从这些记录中获取10个随机行,而不使用SQL命令ORDER BY rand().
我尝试循环遍历记录并将它们放入一个数组并随机播放(在洗牌后获得第10个)但它们需要大约8-12秒才能生成.我想不惜一切代价减少这个处理时间.
我将如何做到这一点?
Pop*_*les 8
好的,如果您不想使用RAND(),请先选择更快的id列,然后再选择您想要的10行
SELECT id FROM table
shuffle($idarray);
$ids=array_slice($idarray,0,10);
$sql="SELECT ... WHERE id IN (".implode(', ', $idarray).")";
编辑:这肯定比使用ORDER BY RAND()快得多!
归档时间:
13 年,2 月 前
查看次数:
136 次
最近记录: