mysql冷热分离的技术_冷热数据分离思路

本文介绍了MySQL冷热数据分离的实现方法,包括分库策略和分表策略。在分库中,通过优先查询热库,仅在特定条件下查询冷库。分表则按照数据的新旧进行,历史数据存入单独的表,并定期清理。同时,通过查询条件字典优化查询过程,减少对冷库的访问。数据同步和命中的处理也进行了详细说明。
摘要由CSDN通过智能技术生成

分库:

1、数据库分库而不是分表,分表需要考虑后期的查询问题,此外还需要注意分表的算法(哈希算法)。

2、热数据只占全部数据的一部分,因此每次优先查询热库,以下情况才查询冷库

-  当查询条件未命中(结果集为空)时,查询冷库。

-  当查询条件部分命中时,查询冷库。

3、为了区分部分命中和全部命中,可以在热库中建一张R表存放每次查询冷库的查询条件和查询结果数量和查询结果的主键,每次查询热库时,对比相同查询条件的查询结果数量是否一致。一致,则本次查询结束。不一致,则需要到冷库中进行查询。

4、更优方案:不一致的情况,只到冷库中查询未查到的数据。此时R表需要存放的不仅是查询结果数量,还有查询结果的所有主键。

5、举例说明:100条中80条还是热数据 20条变成了冷数据,其实应该只是对冷数据库发起这20条数据的请求。此时需要将R表数据拿出来比对,只查一部分冷数据。

6、热库=>冷库 : 查询和使用热数据时,将一段时间不再使用的热数据移到冷库。

7、冷库=>热库 :查询冷库时,将本次查询的结果移到热库,附上最新查询日期。

8、数据同步(每次查询进行或达到一定量级进行)

9、关于命中的处理:制定查询条件字典 如 where a=? and b=? 这个条件的字典为

public static IDictionary QueryKeyValues=new IDictionary{

(0,1),(1,2),(3,3)

}

先进行查询条件的字典命中处理=&g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值