当前位置:   article > 正文

shardingsphere-jdbc的分片策略_shardingsphere-jdbc complexshardingstrategyconfigu

shardingsphere-jdbc complexshardingstrategyconfiguration

行表达式分片策略 - InlineShardingStrategy

使用GroovyInline表达式,提供对SQL语句中的=和IN的分片操作支持,只支持单分片键.
对于简单的分片算法,可以通过简单的配置使用,从而避免繁琐的Java代码开发,如: 
t_user$->{user_id % 8} 表示t_user表按照user_id按8取模分成8个表,表名称为t_user_0到t_user_7
db$->{id%2+1} 表示按照id分成两个库db1,db2,每个库中对应一个表;比如id=1;则1%2+1=2,所以就会被存到db2库中;
  • 1
  • 2
  • 3
  • 4

标准分片策略 - StandardShardingStrategy

提供对SQL语句中的 = , in , between and 的分片操作支持,只支持单分片键。
提供PreciseShardingAlgorithm精确分片和RangeShardingAlgorithm范围分片。
精确分片是必选的,用于处理 = 和 in分片。自定义需要继承PreciseShardingAlgorithm
范围分片是可选的,用于处理 Between and分片,如果不配置,Sql中的between and将按照全库路由处理。自定义需要继承RangeShardingAlgorithm
  • 1
  • 2
  • 3
  • 4

复合分片策略 - ComplexShardingStrategy

提供对SQL语句中的=,in, 和between and的分片操作支持。
ComplexShardingStrategy支持多分片键,由于多分片键之间的关系复杂,因此并未进行过多封装,而是直接将分片键值组合以及分片操作符透传至分片算法,完全由应用开发者实现,提供最大的灵活度。我么可以通过多个分片键决定将数据存储在那个库哪个表。自定义需要继承ComplexKeysShardingAlgorithm
  • 1
  • 2

Hint分片策略 - HintShardingStrategy

通过Hint而非SQL解析的方式分片的策略。对于分片字段非SQL决定,而由其他外置条件决定的场景,可使用SQL Hint灵活的注入分片字段
Hint分片策略是绕过SQL解析的,所以对于这些比较复杂的需要分片的查询,采用Hint分片策略性能可能会更好
在读写分离数据库中,Hint 可以通过HintManager.setMasterRouteOnly()方法,强制读主库(主从复制存在一定延时,但在某些特定的业务场景中,可能更需要保证数据的实时性)
在读写分离中,Hint 可以强制读主库(主从复制是存在一定延时,但在业务场景中,可能更需要保证数据的实时性)
  • 1
  • 2
  • 3
  • 4

自定义需要继承HintShardingAlgorithm

    @GetMapping("/hint")
    public Person hint(){
        HintManager manager=HintManager.getInstance();
        manager.setDatabaseShardingValue("m2");//为库设置分片键
        //manager.addDatabaseShardingValue("person","m2");//为库添加分片键
        //manager.addTableShardingValue("person",0);//为表添加分片键
        Person person = new Person();
        int i = 9;
        person.setAge(20 + i);
        person.setGender("female");
        person.setMail("1115333772" + i);
        person.setName("miao" + i);
        mapper.insert(person);
        manager.close();
        return person;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/756670
推荐阅读
相关标签
  

闽ICP备14008679号