适合场景
- 数据更新为某种状态后不会再去更新
- 某个时间点之前的数据查询很少
- 不会存在同时读冷热数据的需求
怎么判断一个数据时冷数据还是热数据
基于使用场景,使用一个或者多个字段来区分。比如可以使用某个状态或者时间节点来判断。
- 如订单状态为已完结的就是冷数据,未完结的就是热数据;
- 基于时间节点来判断,比如三个月之前的为冷数据。很多购物网站会将三个月之前的订单设置为冷数据进行归档。 也可以使用状态+时间的组合方式,这些都是需要按照实际业务来做决定。
怎么做冷热分离
- 修改业务数据时操作
- 基于数据库变更日志监听
- 定时器
怎么分离冷热数据
找出冷数据 --> 将冷数据插入到冷数据库中 --> 从热数据库中删除冷数据
怎么保证数据一致性
可以在热数据库中给需要迁移的数据打上标识,迁移成功了才可以删除,同时需要在冷数据库做好幂等性判断