再谈sharding database的一些概念

在继『Oracle sharding database的一些概念』『sharding database的一些概念的补充』之后,我觉得还是有些概念需要谈一下。

1.shard prune(分片裁剪):
这个概念类似分区裁剪(partition prune),是指根据sql语句会到对应的分片上去。
但是并不是所有的sql语句都会用到分片裁剪的功能。需要基于shardcat db的statement-level routing,也就是代理路由;因为需要在shardcat上做sql语句的解析。
1.1 当分片方式不是system-managed了,而是user-defined的分片方式,或者是Composite混合型的分片方式的时候,如果此时语句中包含基于shard key的range或者list的条件,如等于,in-list,like,范围等,这时就能触发分片裁剪。
1.2 当分片方式是一致性hash时,如果此时语句中包含基于shard的等于,或者in-list的时候,就可以触发分片裁剪。

2. cross shard join:
12.2只支持基于shard key的cross shard join。

3. cross shard DML
12.2.0.2不支持cross shard dml。

其实这3点的限制,oracle都是为了最大程度上避免跨分片操作。

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据