冷热分离——Java全栈知识(36)

之前在面试的时候有老师问:
我看你使用了水平分表,但是如果有些 1%的数据占了访问量的 90%,而剩下 99%的数据只占了访问量的 10%。这种情况怎么处理。

1 、冷热分离

1.1、什么是冷热分离

冷热分离指的是在处理数据时将数据库分为冷库和热库,冷库指用于存放走到了终态的数据(冷数据)的数据库,热库用于存放还需要修改的数据(热数据)的数据库。

1.2、什么情况下使用冷热分离?

从冷热分离的定义我们可以知道当业务需求涉及到冷热数据,表数据量增长速度快或数据量较大时,我们就该考虑是否使用冷热分离解决方案了。比如:
1)数据走到终态后,只有读没有写的需求。
2)用户能够接受新旧数据分开实现业务,比如查询新旧数据的时候分开操作。

1.3、如何判断一个数据到底是冷数据还是热数据?

一个数据是冷数据还是热数据,需要根据实际的业务需求来制定判定条件。满足热数据条件的归为热数据,满足冷数据条件的归为冷数据。

判定条件可以是表里的 1 个字段或多个字段组合的方式组成。
时间、状态等都是比较适合用作判定条件的字段。

比如,我们管理一个订单系统,针对订单主表,我们可以使用下面两种方式作为冷热数据的界定:

方式 1:使用“下单时间”字段作为判定条件,3 个月内的订单数据作为热数据,3 个月前的订单数据作为冷数据。
方式 2:使用“完结状态”字段作为判定条件,未完结的订单作为热数据,已完结的订单作为冷数据。
关于判断冷热数据的逻辑,这里还有 2 个注意要点必须说明:
1)如果一个数据被标识为冷数据,业务代码不会再对它进行写操作;
2)不会同时存在读冷/热数据的需求。

2、垂直分表

如果业务场景是针对于某几个字段会有很高的并发量的话,我们就可以对宽表进行垂直分表。

例如:文章表中含有文章基础信息,文章简介,文章内容几个字段。
但是例如文章的内容的访问量是要比文章基础信息要少很多的,而且一般文章内容这些字段还会比较大,非常影响磁盘 IO 和网络 IO

针对于这种现象我们就可以进行垂直分表,将原本的文章表分为文章基础信息表和文章内容表,这样就可以很好的解决。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL的冷热分离是一种将热数据和冷数据分开存储的策略。热数据指的是那些经常被访问的数据,而冷数据则是那些不经常被访问的数据。 根据引用的说明,如果每次访问都需要去移动链表,会对性能造成下降。因此,MySQL针对热数据区的数据转移也有相关的规则。 根据引用的描述,冷数据是指那些久远的历史数据,可以将其存放到冷数据的数据中心池子中,而线上的MySQL只需要保留最近一段时间的数据。 通过冷热分离的策略,可以将热数据存放在高性能的存储介质中,提高数据的访问效率。同时,冷数据可以存放在较低成本的存储介质中,以节省成本和资源。这种策略还可以减少线上MySQL数据库的负载,提高数据库的整体性能和响应速度。 在冷热分离的过程中,为了不改变现有项目使用数据的方式,降低数据库使用者的门槛,需要兼容MySQL单表的使用协议,确保对线上数据库和离线数据的数据中心的兼容性。 总结起来,MySQL的冷热分离是一种将热数据和冷数据分开存储的策略,通过将热数据存放在高性能介质中,冷数据存放在低成本介质中,来提高数据库的性能和资源利用效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [什么是数据库的 “缓存池” ?(万字长文)](https://blog.csdn.net/bjweimengshu/article/details/113361587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [惊了! MySQL 热冷数据分离设计还能这样!](https://blog.csdn.net/uxiAD7442KMy1X86DtM3/article/details/110729642)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东莞呵呵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值