2011-04-11 61 views
2

我有一个mysql查询返回一个110,000,000表的20个结果。我想在使用php回显它们之前将它们洗牌。php mysql shuffle输出速度

它是更快地使用

ORDER RAND() 

洗牌在php莫名其妙的阵列?

+1

试试看看:http://php.net/microtime#example-629 – Treffynnon 2011-04-11 16:33:31

+1

你想洗牌所有1100万个结果,并从1100万组中选择20个随机结果,或者你想选择一个可预测的20个结果的集合,然后洗牌? – 2011-04-11 16:34:51

+0

@Frank:选择一个可预测的20然后洗牌。 – David19801 2011-04-11 16:37:00

回答

1

根据您从MySQL撤回的结果数量,ORDER BY RAND()会更快。

如果你只是像你说的那样返回20,那么性能差异可以忽略不计。

你总是可以测试一下,看看哪个更适合你,用PHP打乱一个数组,你可以使用shuffle()