冷热数据分离方案

不一定做,毕竟比较复杂,暂时想点方案。

为什么要做冷热分离

其实做冷热分离是为了提高性能,降低存储成本的一种存储数据的策略。

单日访问统计表,也就是 t_stats_today 表,没必要做分表,因为这个场景是用户想查询某一天该数据的访问记录或者该分组下所有数据的访问记录,这个实际上用到的可能性很小(因为我们默认的查询区间是最近一个星期的访问记录,对于之前的某一天的访问记录,一般用不到)。

那我们可以做个优化,也就是冷热数据分离,把最近一段时间的单日访问记录存到数据表中,但是更早的数据可以通过备份表(用一个 back 标识为单日访问记录的备份表)存储到适合大容量存储的数据库但是查询效率相比于热库较低,比如 Postgresql 等。如果用户真要访问这种冷门的数据再从冷库中查询。

同时也是为了适应取消 gid 之后,减少查询当日访问统计记录的关联查询次数。那这样我们那个绑定表导致的笛卡尔积问题就不用考虑了。4 项目问题–分库分表相同分片键使用left join会出现笛卡尔积

其他问题

怎么实施冷热数据分离

可以看字节的方案:字节跳动技术团队-冷热数据分分离方案: https://mp.weixin.qq.com/s/ZKRkZP6rLHuTE1wvnqmAPQ

实习的时候就有这种场景,把大量的推荐以及推送日志冷热分离,减少对线上数据库的存储压力。(具体还在研究如何实现)

  • #task 如何实施冷热分离? 🔽

应该要结合项目考虑。

冷热分离有什么问题

  1. 首先你的代码复杂度会提高很多,你划分冷热数据,在比较复杂的场景下很难实行。如果划分不够好,导致频繁的访问冷库数据,性能会降低很多。
  2. 还有问题就是冷热数据的同步,以及数据一致性问题,你打算什么时候进行热库同步数据到冷库呢。
  3. 高可用性,对于不同的数据库,你维护的方式也不同,不管是冷库还是热库挂掉或者性能下降都会导致系统问题。

… 大概想到这么点,可能会再补充吧。

怎么定义冷数据和热数据的

冷数据一般就是线上环境中对于一些实时性要求较低的功能,比如支付,你不可能交给冷库来做,因为性能不够高,而且它的数据是由热库按照一定规则同步过来的,可能会有一些延迟。

冷数据是不经常访问的数据。它可以存储在更便宜、更慢速的存储介质上,如高容量硬盘驱动器或者云存储服务的冷数据层。

热数据相反,就是对于实时性以及计算要求高的需求,需要用热库快速查询和返回数据,并且保证数据的准确性。

gpt 参考:- 热数据:指的是经常被访问和修改的数据。这类数据应该存储在快速、低延迟的存储系统上,以便快速访问。例如,活跃的数据库记录或者需要实时处理的数据。

ps:
只是一个简单的想法,并不是一个系统性的文章,请见谅,待之后真正做了之后会考虑发布

相关推荐

  1. 冷热数据分离方案

    2024-04-29 12:00:06       31 阅读
  2. 【经验】mysql冷热数据分离

    2024-04-29 12:00:06       29 阅读
  3. 数据分析---数据概念、分析方法

    2024-04-29 12:00:06       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-29 12:00:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-29 12:00:06       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-29 12:00:06       82 阅读
  4. Python语言-面向对象

    2024-04-29 12:00:06       91 阅读

热门阅读

  1. typedef,#define,asserr,exit函数,free函数

    2024-04-29 12:00:06       27 阅读
  2. 探索Vue 3 reactive()原理及其实现步骤

    2024-04-29 12:00:06       34 阅读
  3. vue 的 keep-alive 详解

    2024-04-29 12:00:06       29 阅读
  4. 算法基础一

    2024-04-29 12:00:06       31 阅读
  5. wps用js宏给文档增加用户名密码验证

    2024-04-29 12:00:06       32 阅读
  6. 每天学习一个Linux命令之ncdu

    2024-04-29 12:00:06       35 阅读
  7. 5.1 基于 Docker 安装 Zookeeper

    2024-04-29 12:00:06       26 阅读
  8. css折叠的导航栏

    2024-04-29 12:00:06       27 阅读
  9. 生成WHL或压缩包安装文件,发布到PYPI

    2024-04-29 12:00:06       26 阅读
  10. 在 Web3 方向有哪些工作,需要掌握哪些知识呢?

    2024-04-29 12:00:06       35 阅读
  11. 力扣经典150题第四十八题:合并区间

    2024-04-29 12:00:06       28 阅读
  12. Qt在已存在的控件上绘图

    2024-04-29 12:00:06       30 阅读
  13. day17面向对象三大特征—封装

    2024-04-29 12:00:06       23 阅读
  14. 建网站一般需要多少钱

    2024-04-29 12:00:06       32 阅读