que-6ren">
gpt4 book ai didi

PHP、MySQL - 结果数组洗牌会比 "select... order by rand()"更快吗?

转载 作者:行者123 更新时间:2023-11-29 07:15:00 24 4
gpt4 key购买 nike

我已经阅读了很多关于使用“order by rand”的缺点的文章,所以我不需要对此进行更新。我在想,因为我只需要从数据库中检索的有限数量的行进行随机化,也许我应该这样做:

$r = $db->query("select * from table limit 500");
for($i;$i<500;$i++)
$arr[$i]=mysqli_fetch_assoc($r);
shuffle($arr);

(我知道这只会随机化前 500 行)。

那会不会比

$r = $db->("select * from table order by rand() limit 500");

让我提一下,假设数据库表包含超过...10,000 行。

你为什么不自己做?!? - 好吧,我有,但我正在寻找你有经验的意见。

谢谢!

最佳答案

500或10K,样本量太小,无法得出切实的结论。在 100K,您仍在查看 1/2 second region on this graph .如果您仍然关心性能,请查看 two options for a randomized number I provided in this answer .

我们没有您的数据或设置,因此您可以实际测试情况。有许多关于如何在 PHP 中计算运行时间的页面 - 创建两个页面,一个使用 shuffle,另一个使用 RAND() 查询。每个至少运行 10 个,然后看一看。

关于PHP、MySQL - 结果数组洗牌会比 "select... order by rand()"更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com