数据库优化-冷热分离
【摘要】 数据冷热分离?数据冷热分离,冷数据是指访问量较少的数据,热数据是指访问量较多的数据。数据冷热分离就是将冷数据和热数据分开存储。为什么要做冷热分离?做冷热分离目的主要是更好的利用系统资源,降低成本。在大多数系统中,如论坛,OA,商城等等,经过时间的累积,会积累大量的冷数据,例如,发布了很久但是没人访问的帖子,已经下架了很久的商品等等。这种冷数据会占用大量的空间。 而为了提高热点数据的访问,一般...
数据冷热分离?
数据冷热分离,冷数据是指访问量较少的数据,热数据是指访问量较多的数据。数据冷热分离就是将冷数据和热数据分开存储。
为什么要做冷热分离?
做冷热分离目的主要是更好的利用系统资源,降低成本。在大多数系统中,如论坛,OA,商城等等,经过时间的累积,会积累大量的冷数据,例如,发布了很久但是没人访问的帖子,已经下架了很久的商品等等。这种冷数据会占用大量的空间。 而为了提高热点数据的访问,一般热数据的存储介质都较好,例如SSD,但是成本也较高,如果冷数据大量占用了空间,就会极大的提高成本。
冷热数据的区分,一般主要以访问频率进行区分,但是需要进行热点统计,简单的也可以通过时间区分。
- 时间区分:按照时间段进行区分,例如近一年为热数据,其他为内数据。实现简单,但需要热点数据和时间成正比,时间越大,热点数据越多。
- 访问频率区分:按照用户实际访问量区分,例如精品论文为热数据。区分热点数据更加准确,但是需要进行数据统计,且需要剑灵保证冷点数据不会调整为热点数据。
冷热数据分离的优缺点
- 优点:主要就是节约成本,主要就是冷点的存储介质可以适当降低。,在成本有限的情况下,对于热点数据,即大多数用户的访问来说性能也是有所提升
- 缺点:系统复杂度增高,由于冷热分离,对于程序的设计,统计数据增加了额外的开销
冷数据迁移的常见策略
- 业务代码实现:在数据入库时进行判断,热数据入热库,冷数据入冷库。这种方法,除非有明确的判断依据,否则业务逻辑很难实现,且不符合大多数系统的使用习惯,增加了无效的逻辑。
- 任务调度:定期扫描数据库,清理数据从热库到冷库。
- binlog日志监听:有点类似于业务代码实现,通过binlog日志识别冷数据,将数据从热库复制到冷库,并进行删除热裤。区别于业务代码实现,不需要额外的代码
冷数据的存储要求
冷数据更多的作用主要是保留历史记录,满足基本的功能要求,且数据量大,对于性能没有过高的要求。因此一般要求存储的介质
- 容量大
- 成本低
- 可靠性高
实际业务场景,主要还是根据成本来进行区分。
- 低成本:使用开源数据库,新增表或者库存储冷数据(涉及跨库查询,增加了系统的复杂性)
- 高成本:使用Hbase(常用)、TiDB(常用)、RocksDB等等
TiDB分布式关系型数据库,支持数据冷热存储隔离,降低SSD使用成本
// todo 了解TiDB数据库
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)