ShardingSphere分库分表实战--HintShardingStrategyHin。。。

更新时间:2023-07-01 15:19:23 阅读: 评论:0

ShardingSphere分库分表实战--HintShardingStrategyHin。。。
⽂章⽬录
HintShardingStrategy
schoolgirls
Hint强制路由,通过Hint指定分⽚值⽽⾮从SQL中提取分⽚值的⽅式进⾏分⽚的策略。aduit
在分库分区中,有些特定的SQL,Sharding-jdbc、Mycat、Vitess都不⽀持(可以查看相关⽂档各⾃对哪些SQL不⽀持),例如:inrt into table1 lect * from table2 where …这种SQL 路由很⿇烦,需要解析table2的路由(是在ds0 /ds1 table2_0/table_1),结果集归并,inrt 语句也需要同样的路由解析。这种情况Sharding-jdbc可以使⽤Hint分⽚策略来实现各种Sharding-jdbc不⽀持语法的限制:
通过Hint⽽⾮SQL解析的⽅式分⽚的策略。对于分⽚字段⾮SQL决定,⽽由其他外置条件决定的场景,可使⽤SQL Hint灵活的注⼊分⽚字段
漂亮的英文Hint分⽚策略是绕过SQL解析的,所以对于这些⽐较复杂的需要分⽚的查询,采⽤Hint分⽚策略性能可能会更好
在读写分离数据库中,Hint 可以通过HintManager.tMasterRouteOnly()⽅法,强制读主库(主从复制存在⼀定延时,但在某些特定的业务场景中,可能更需要保证数据的实时性)
在读写分离中,Hint 可以强制读主库(主从复制是存在⼀定延时,但在业务场景中,可能更需要保证数据的实时性)
配置
#hint强制路由策略
spring.shardingsphere.ur.table-strategy.hint.algorithm-class-name=MyHintTableShardingAlgorithm
注意:这个我们仅设置表相关配置,没有库的,表⽰全部库2017年6月英语四级
adjust⾃定义实现类MyHintTableShardingAlgorithm :
package;绝世超伦
import HintShardingAlgorithm;
import HintShardingValue;
import Arrays;
import Collection;
public class MyHintTableShardingAlgorithm implements HintShardingAlgorithm<Integer>{
gdf@Overridechobits
狗屎英语public Collection<String>doSharding(Collection<String> availableTargetNames, HintShardingValue<Integer> shardingValue){
String key = LogicTableName()+"_"+ Values().toArray()[0];
ains(key)){
return Arrays.asList(key);
男士美白的方法
}
throw new UnsupportedOperationException("route "+ key +" is not supported ,plea check your config");
}
}
shardingValue 不再从SQL 解析中获取值,⽽是直接通过hintManager.addTableShardingValue(“cour”,2)参数指定
Hint强制路由,顾名思义,就是直接指定路由,不通过sql 分⽚键进⾏计算。
测试⽤例:
@Test
public void queryCourByHint(){
HintManager hintManager = Instance();        hintManager.addTableShardingValue("cour",2);
List<Cour> cours = courMapper.lectList(null);        cours.forEach(cour -> System.out.println(cour));        hintManager.clo();
}
Hint分⽚策略必须要使⽤ HintManager⼯具类
参考

本文发布于:2023-07-01 15:19:23,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1072351.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:需要   路由   可能   解析
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图