分库分表和非分库分表的映射关系保存-解决方案

本文探讨了在分库分表场景下,如何通过Es、Hbase和RocksDB三种技术保存映射关系,分析了Es的分布式特性带来的数据一致性问题,Hbase的适合大规模数据存储和快速查询,以及RocksDB结合分布式缓存的优势。
摘要由CSDN通过智能技术生成

针对分库分表和非分库分表的映射关系保存在哪里,以下是解决方案

方案1-Es

1、给在Es中给映射关系添加字段,以及设置字段类型:id、shardingKey、nonShardingKey

{"mappings":{
	"properties":{
		"id":{"type":"keyword"},
		"shardingKey":{"type":"keyword"},
		"nonShardingKey":{"type":"keyword"}
	}}
}


2、添加数据
[
    {"id": "1", "shardingKey": "shard1", "nonShardingKey": "nonShard1"},
    {"id": "2", "shardingKey": "shard2", "nonShardingKey": "nonShard2"},
]

keywork类型是属于进准匹配

缺点:
数据一致性问题:由于 Elasticsearch 是一个分布式系统,可能存在数据一致性问题。
需要额外部署和管理
存储空间消耗大
有一定学习成本

方案2-Hbase

Apache HBase来保存MySQL的分库分表键和非分库分表键的映射关系。HBase是一个分布式、高可用的列式数据库,适合【大规模数据】的【存储】和【快速查询】。由于映射关系很少更新且查询性能要求较高,HBase可以提供较好的性能,并且支持数据持久化到磁盘中。

方案3-RocksDB

在这种情况下,考虑使用RocksDB[rua ke si]作为存储引擎,结合一个分布式缓存中间件,如Redis或Memcached,来保存MySQL的分库分表键和非分库分表键的映射关系。
RocksDB作为一个高性能的磁盘存储引擎,可以提供较好的【持久性】和【查询性能】,而Redis或Memcached则提供了快速的内存缓存和查询加速。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信仰_273993243

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值