千万级以上数据库优化方案一:冷热分离

333 阅读1分钟

适合场景

  • 数据更新为某种状态后不会再去更新
  • 某个时间点之前的数据查询很少
  • 不会存在同时读冷热数据的需求

怎么判断一个数据时冷数据还是热数据

基于使用场景,使用一个或者多个字段来区分。比如可以使用某个状态或者时间节点来判断。

  • 如订单状态为已完结的就是冷数据,未完结的就是热数据;
  • 基于时间节点来判断,比如三个月之前的为冷数据。很多购物网站会将三个月之前的订单设置为冷数据进行归档。 也可以使用状态+时间的组合方式,这些都是需要按照实际业务来做决定。

怎么做冷热分离

  • 修改业务数据时操作
  • 基于数据库变更日志监听
  • 定时器

怎么分离冷热数据

找出冷数据 --> 将冷数据插入到冷数据库中 --> 从热数据库中删除冷数据

怎么保证数据一致性

可以在热数据库中给需要迁移的数据打上标识,迁移成功了才可以删除,同时需要在冷数据库做好幂等性判断