数据库优化-冷热分离

举报
object 发表于 2024/03/22 17:24:16 2024/03/22
【摘要】 数据冷热分离?数据冷热分离,冷数据是指访问量较少的数据,热数据是指访问量较多的数据。数据冷热分离就是将冷数据和热数据分开存储。为什么要做冷热分离?做冷热分离目的主要是更好的利用系统资源,降低成本。在大多数系统中,如论坛,OA,商城等等,经过时间的累积,会积累大量的冷数据,例如,发布了很久但是没人访问的帖子,已经下架了很久的商品等等。这种冷数据会占用大量的空间。 而为了提高热点数据的访问,一般...

数据冷热分离?

数据冷热分离,冷数据是指访问量较少的数据,热数据是指访问量较多的数据。数据冷热分离就是将冷数据和热数据分开存储。

为什么要做冷热分离?

冷热分离目的主要是更好的利用系统资源,降低成本。在大多数系统中,如论坛,OA,商城等等,经过时间的累积,会积累大量的冷数据,例如,发布了很久但是没人访问的帖子,已经下架了很久的商品等等。这种冷数据会占用大量的空间。 而为了提高热点数据的访问,一般热数据的存储介质都较好,例如SSD,但是成本也较高,如果冷数据大量占用了空间,就会极大的提高成本。

冷热数据的区分,一般主要以访问频率进行区分,但是需要进行热点统计,简单的也可以通过时间区分。

  • 时间区分:按照时间段进行区分,例如近一年为热数据,其他为内数据。实现简单,但需要热点数据和时间成正比,时间越大,热点数据越多。
  • 访问频率区分:按照用户实际访问量区分,例如精品论文为热数据。区分热点数据更加准确,但是需要进行数据统计,且需要剑灵保证冷点数据不会调整为热点数据。

冷热数据分离的优缺点

  • 优点:主要就是节约成本,主要就是冷点的存储介质可以适当降低。,在成本有限的情况下,对于热点数据,即大多数用户的访问来说性能也是有所提升
  • 缺点:系统复杂度增高,由于冷热分离,对于程序的设计,统计数据增加了额外的开销

冷数据迁移的常见策略

  • 业务代码实现:在数据入库时进行判断,热数据入热库,冷数据入冷库。这种方法,除非有明确的判断依据,否则业务逻辑很难实现,且不符合大多数系统的使用习惯,增加了无效的逻辑。
  • 任务调度:定期扫描数据库,清理数据从热库到冷库。
  • binlog日志监听:有点类似于业务代码实现,通过binlog日志识别冷数据,将数据从热库复制到冷库,并进行删除热裤。区别于业务代码实现,不需要额外的代码

冷数据的存储要求

冷数据更多的作用主要是保留历史记录,满足基本的功能要求,且数据量大,对于性能没有过高的要求。因此一般要求存储的介质 

  • 容量大
  • 成本低
  • 可靠性高

实际业务场景,主要还是根据成本来进行区分。

  • 低成本:使用开源数据库,新增表或者库存储冷数据(涉及跨库查询,增加了系统的复杂性)
  • 高成本:使用Hbase(常用)、TiDB(常用)、RocksDB等等

TiDB分布式关系型数据库,支持数据冷热存储隔离,降低SSD使用成本

// todo 了解TiDB数据库

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。