武进建设局网站首页,网站建设服务哪家,建筑模板使用寿命多久,wordpress创建知识库2019独角兽企业重金招聘Python工程师标准 需求#xff1a; 企业应用中#xff0c;一般数据量不是很特别多#xff0c;同时大多在局域网内#xff0c;性能不会有问题#xff0c;一般不会分页处理#xff0c;随机排序数据一般不会有问题 web网站中#xf… 2019独角兽企业重金招聘Python工程师标准 需求 企业应用中一般数据量不是很特别多同时大多在局域网内性能不会有问题一般不会分页处理随机排序数据一般不会有问题 web网站中一般都用到分页处理目前数据量比较少考虑到数据“动态”想随机顺序展现数据每次看到的不一样 方案 数据库解决 用mysql的select * from tab order by rand() 用rand()会用问题会出现数据重复从数据库的rand()和分页原理上出现重复不可避免分页其实对sql语句结果的分段提取对结果集从第m条记录到第n条记录mysql的rand()实现原理是每次sql的结果集的全部按算法打乱排序而分页是有上下文关系的所以可能出现某条记录出现在不同的分页中如某条记录在第一次sql执行时rand()排序后在第一页而第二次执行sql时rand()排序后落在第二页这条记录在分页过程中用了多次 在可以容忍重复的情况下可以用不过mysql的rand(函数效率非常低建议用表中的主键做散列计算排序如主键是数字类型可求余运算来散列 如不能容忍重复数据库好像比较难直接解决网站web应用又没有固定的连接利用session id标识建立临时表好像不大现实 程序解决 第一页时取到内存然后翻页时用剩余数据比较复杂也不大现实标识session id何时清理...? 结论 好像解决不了有无其它方案 采用3分钟之内改变一次不过在临界点时间也可能出现数据重复瀑布流方式翻页展示时最终回全部查出 转载于:https://my.oschina.net/solarxie/blog/131171