问题:面对海量数据不重复推送给用户

  • 环境介绍
  • 心理分析
  • 思考
  • 解决思路
  • 工具准备
  • 结论分析
  • 个人小结

环境介绍

1.数据库中有2000w条记录,要求根据用户兴趣随机展示给用户。
2.展示过(即被用户阅览过的数据)不能再展示给该用户。
3.效率要高 至少要高过出题人所要求的 order by rand()及 where id not in ( 1, 2, … , n );。

心理分析

  作为一个小白初次看到这个问题时,我的脑海里直接浮现了三款比较类似又各自有着不同特点的应用,列举这三款呢也是因为小白我平时使用的比较多脑海里很快的浮现了这几款应用。
微博热门:
  微博就热门推送板块而言,我们可以发现其时效性还是比较强的,且我们很难在手动刷新一次的情况下再阅览到之前看过的记录。即:通过微博热门呈现给用户的数据创建时间会相对的靠近当前时间,且该条数据一定以某种状态被标记为被当前用户查阅过,但是很难在推送的内容中找到我们感兴趣,"时效性"会比"兴趣性"更强一些。
今日头条:
  今日头条呢是小白我平日闲着无聊就喜欢打开的应用,使用体验来说,我们可以明显的感受到,当系统推送的内容被我们点击阅览,或者主动搜索过部分关

余亦有所思|面对数据库海量数据,如何保证推送给用户的数据不再重复推送呢?参考今日头条相关推荐

  1. mysql数据迁移数据一致性检教6_如何在数据库迁移中保证数据一致性?

    原标题:如何在数据库迁移中保证数据一致性? 作者 | 王斌 译者 | 平川 策划 | 万佳 在分布式系统中,保持数据一致非常困难,而且很容易出错.在本文中,我们将探索一种在迁移期间保持数据一致性的方法 ...

  2. REDIS11_缓存和数据库一致性如何保证、解决方案、提供Canel解决数据一致性问题

    文章目录 ①. 缓存和数据库双写一致保证 ②. 缓存数据一致性-解决方案 ③. 缓存数据一致性-解决-Canal ①. 缓存和数据库双写一致保证 ①. 只要用缓存,就可能会涉及到缓存与数据库双存储双写 ...

  3. 面对突发流量,保证服务可用的4个手段

    面对突发流量,保证服务 前言 不知道你有没有这样的经历,线上的系统突然来了很大的流量,有可能是黑客的攻击,也有可能是业务量远远大于你的预估,如果你的系统没有做任何的防护措施,这时候系统负载过高,系统资 ...

  4. Redis重点六:怎么保证redis挂掉之后重启数据可以恢复?

    redis的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的? redis如果仅仅只是将数据缓存在内存里面,如果redis宕机了,再重启,内存里的数据就全部都弄丢了啊 ...

  5. 数据库没有备份---应如何还原丢失的数据

    数据库没有备份---应如何还原丢失的数据   环境描述: 某公司装了一台SQL Server数据库,为了保证数据库能够在出现故障时及时的修复,管理员做了备份操作,比如说完整备份+差异备份或者完整备份+ ...

  6. 合同管理数据库设计mysql_工程合同管理信息系统的数据设计理念

    一.工程合同管理流程系统数据库设计 建立数据库是为了更有效地管理数据.获取信息,一般的用户都是通过应用程序使用数据库的,用户的应用程序体现了信息系统的功能.设计数据库和设计建立在数据库之上的应用程序是 ...

  7. 面向考试数据库—单表查询(包含建表数据)

    面向考试数据库-单表查询(包含建表数据) 引言 ● 建立练习数据库(之后习题亦是基于该库) 建表源码 单表查询知识点汇总 单表查询练习题32道 (1)选取表中的若干列 (2)选择表中若干元祖 (3)o ...

  8. 阿里P8架构师进阶心得:分布式数据库架构MyCat学习笔记送给你

    前言: MyCat 是一个数据库分库分表中间件,使用 MyCat 可以非常方便地实现数据库的分库分表查询,并且减少项目中的业务代码.今天我们将通过数据库架构发展的演变来介绍 MyCat 的诞生背景,以 ...

  9. Selenium驱动firefox爬取今日头条并存放在MySQL数据库中

    Selenium驱动firefox爬取今日头条 前提: 1.安装selenium包:pip install selenium 2.安装MySQL数据库,并下载Navicat可视化工具 Navicat可 ...

最新文章

  1. 精通python设计模式-精通Python设计模式
  2. 新装WINDOWS XP系统 必须安装的十大高危漏洞补丁
  3. trust cv的含义
  4. 【华为出品】物联网全栈开发实战营第2期来啦!送海思开发板
  5. 学习笔记之进程管理的相关重要命令
  6. Web播放器学习笔记(二) 1 Bit Audio Player
  7. 使用webpack 打包出错[webpack-cli] TypeError: Cannot read property ‘tap‘ of undefined
  8. 三菱plc控制步进电机实例_三菱FX3U的plc通过手摇轮,如何手动控制步进电机
  9. 超好用的网盘下载工具---PanDownload
  10. java继承序列化_Java中具有继承的对象序列化
  11. speedoffice(Word)文档中如何插入图片
  12. 7寸显示器 树莓派4b_基于树莓派4B显示屏分类
  13. 七夕表白java代码_身为程序猿的你,七夕表白代码你有get吗
  14. 广州大学校园网路由器傻瓜式自助刷机教程
  15. RBF技术实现“双花漏洞”研究
  16. GDAL综合整理--7:GDAL实用工具简介
  17. Visual Studio 快速统一设置项目属性(以VS2017为例)
  18. 步进电机(四相五线为例子)步进角度和工作原理介绍
  19. 还在担心图片的版权吗?分享11个无版权、高清、免费图片素材网站给你!
  20. (转载)JavaScript:双波浪号“~~“ 与 Math.floor()

热门文章

  1. NET探秘:MSIL权威指南 简单示例
  2. iphone6的750x1334分辨率排版开发APP及小程序的原因
  3. 星月美容美发管理系统 v4.7 单机/网络版 免费
  4. springboot+jsp家电家用电器销售商城网站
  5. java生成大文件的示例
  6. cqrs java_Java的CQRS和事件溯源ES入门:如何从CRUD切换到CQRS/ES - Baeldung
  7. 虚拟机中连接外部无线网络
  8. 创建oracle dblink权限不足,oracle 创建dblink
  9. 【Java学习】新知识点补充三:程序流程控制
  10. 买手机选择困难症,Python数据分析帮你解决