开发者社区> 问答> 正文

如何对同一时间段内的数据随机排序?

数据库中一张表,要按查询条件并时间为第一要素给分页显示,
可是爬虫在爬取的时候都是某天同个时间段去爬一家网站,这就导致按时间排出的结果,同一家网站数据联在一起,现在要求是按时间排序要出现不同的网站内容,而且该链接的内容可重现。。
我的方法是:时间精确到天,并给随机值,按时间 随机值排序。。
`select id,domain, a,b
from (select id, domain, date_format(time,'%Y-%m-%d') a ,rand(3) b from open_product

    where    thumbnail is not null) xxx  

where a is not null order by a desc, b limit 100;`
1390442 rows in set (1 min 47.76 sec) ----- = =|| 太慢
而且django rawsql 无法使用queryset的方法count,本身连__len__也木有,无法用django的pagination进行分页
各位有没有什么好方法?

展开
收起
落地花开啦 2016-02-15 18:26:00 3391 0
2 条回答
写回答
取消 提交回答
  • 写一个打散函数,尽量按照网站进行打散

    2019-07-17 18:43:33
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

    在插入数据的时候添加随机数字列,查询时使用大跨度单位(如天)分组,然后根据这个随机数字列排序。
    其实也就是把随机的过程提到了插入的时候,而不是查询的时候。

    2019-07-17 18:43:33
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载