我目前有一个包含随机生成的订单列表的数据列表.现在没有分页,因此我很容易生成一个随机排序的列表.随着我的数据列表的增长,由于所有数据,它会变慢,因此明显的解决方案是分页.我的分页问题是每次页面加载时我都不能随机生成订单,所以我和我的经理得出结论,列表必须提前预先生成并重新生成每x个时间.现在的问题是我们如何存储这个生成的列表?我们提出了四种选择:
如果有任何其他解决方案似乎比预先生成的基于时间的列表更好,我很乐意听到它们.
谢谢.
更新:我真的喜欢的答案,但由于某种原因被删除,是有人提到使用SEED,然后我可以存储种子而不是ID列表,这将减少我的数据存储并简化一切.我刚刚测试了解决方案,它几乎完美无缺.唯一的问题是,当我使用LIMIT时,一切都会搞砸.有没有人对此提出建议?我不想每次都生成所有数据,我只想使用LIMIT*,. 如果我将它与种子一起使用,那么数字总是会重置,就像它应该的那样.
希望这是有道理的.当我考虑它时,它更有意义,而不是它的结果.
Mysql RAND()接受种子作为可选参数。使用种子,每次都会返回相同的随机结果集。
您可以做的是在第一个页面请求上用 PHP 生成一个随机种子,并使用查询字符串将其传递到每个页面。
编辑:抱歉,我没有意识到解决方案已经发布但已被删除。