首页 > 其他分享 >ShardingSphere-JDBC学习

ShardingSphere-JDBC学习

时间:2024-01-19 12:33:06浏览次数:25  
标签:JDBC 策略 ShardingSphere order 学习 jdbc 分片 true id

springBoot  引入maven

            <dependency>
                <groupId>org.apache.shardingsphere</groupId>
                <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
                <version>4.0.0-RC1</version>
            </dependency>

  

application.yml配置

spring:
  shardingsphere:
    datasource:
      names: db1,db2
      db1:
        url: jdbc:mysql://localhost:3306/db1?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
        username: root
        password: root
        driver-class-name: com.mysql.cj.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
      db2:
        url: jdbc:mysql://localhost:3306/db2?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
        username: root
        password: root
        driver-class-name: com.mysql.cj.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
#      masterslave:
#        # 读写分离配置
#        load-balance-algorithm-type: round_robin #负载均衡策略,round_robin是轮循
#        # 最终的数据源名称
#        name: dataSource #就是bean的名字
#        # 主库数据源名称
#        master-data-source-name: db1
#        # 从库数据源名称列表,多个逗号分隔
#        slave-data-source-names: db2
    sharding:
      default-database-strategy:
        inline:
          sharding-column: order_id #数据库分片策略字段
          algorithm-expression: db${order_id % 2+1} # 配置t_order表分表策略
      tables:
        t_order:
          actual-data-nodes: db$->{1..2}.t_order_$->{0..3}  #配置t_order表分库策略(inline-基于行表达式的分片算法)
          table-strategy:
            inline:  #只适合一个字段 
              sharding-column: order_id   #增删改查数据包含order_id找到对应的表
              algorithm-expression: t_order_$->{order_id % 2}
          key-generator:
            column: order_id
            type: SNOWFLAKE
    props:
      sql:
        show: true

  

table-strategy:指定表的分片策略,table-strategy有以下几种策略

none 表示不分片,所有数据都存储在同一个表中。

standard 表示使用标准分片策略,根据分片键的值进行范围匹配,将数据路由到对应的分片表中。

inline 表示使用行表达式分片策略,根据分片键的值通过表达式计算得到分片结果,将数据路由到对应的分片表中。

complex 表示使用复合分片策略,可以同时使用多个分片键对数据进行分片计算,将数据路由到对应的分片表中。

标签:JDBC,策略,ShardingSphere,order,学习,jdbc,分片,true,id
From: https://www.cnblogs.com/xzjf/p/17974370

相关文章

  • 1.19学习进度
    1.standalone是一个完整的分布式集群环境;standalone集群在进程上主要有三类进程:主节点master及昵称、从节点的worker进程、历史服务器哦historyserver(可选)2.4040:是一个运行的application在运行的过程中临时绑定的端口,用以查看当前任务的状态。4040被占用会顺延到4041、4042等。404......
  • Quick sort【1月19日学习笔记】
    点击查看代码//Quicksort#include<iostream>usingnamespacestd;intpartition(intA[],intstart,intend){ intpivot=A[end];//默认选取末尾为主元 intpIndex=start;//分区索引初始化 for(inti=start;i<end;i++){//从索引start开始扫描 if(A[i]<......
  • CTF学习记录pwn篇
    作为一个CTF初学者,在这里记录自己学习刷题的过程,不定期更新。此为pwn篇,有关pwn方向的题目会放在这里,目前来说,这篇会主要更新,其他方向也许会有,敬请期待。目录一、formatstring1.[HUBUCTF2022新生赛]fmt-NSSCTF2.test_format-PolarD&N二、ROP1.03ret2syscall_32-PolarD&N......
  • 寒假学习日志1-scala的配置和使用
    首先根据厦大数据库实验室博客配置scala1.下载scala 2.解压scala在linux虚拟机中 3.配置环境变量 4.尝试使用 5.编写第一个程序scala:HelloWorld创建项目目录,写入程序代码 代码内容为:objectHelloWorld{defmain(args:Array[String]){pri......
  • 寒假学习(9)
    今天我计划完成导航部分。我又重新找到一个视频,在其中提到了导航功能,因为是校园导航,所以我通过经纬度查询在学校周围几个热门地点做了标点,通过系统定位作为起始点,将标点作为终点,将两者的经纬度一同传入其他地图(目前只自动支持腾讯地图和高德地图,其他是否支持未知),就能通过其他导航......
  • 【学习笔记】斜率优化DP
    例题1.ACwing301为了方便,我们记\(c_i\)为c的前缀和,\(t_i\)同理。容易推出\(O(n^2)\)方程:\(dp_{i}=\min_{j=0}^{i-1}{(dp_j+s\times(c_n-c_j)+t_i\times(c_i-c_j))}\)但是本题的数据范围是3e5,所以考虑优化。我们先把min给拆掉:\(dp_i=dp_j+s\timesc_n-s\timesc......
  • 云知声山海大模型探寻英语学习新路径,打造专属英语学伴Utalk
    智慧教育与科技发展水平息息相关,其中人工智能在我国的教育信息化推进中扮演着重要角色,是整个教育行业进入“教育智慧时代”的基础,也是落实智慧教育的前提。在此背景下,云知声依托山海大模型,研发出智慧教学相关产品,赋能智慧教育向好发展。以英语学习来说,它在孩子的教育过程中......
  • 大三寒假学习进度笔记9
    今日学习时间一小时,学习内容:通过不同格式构建DataFrame对象,包括基于Pandas的DF转换,读取text,csv,json和jparquet创建。jparquet具有以下特点:列式存储自带Schema具备PredicateFilter特性一个Parquet文件的内容由Header、DataBlock和Footer三部分组成。在文件的首尾各有一个......
  • Java学习日记 Day3 最难绷的一集
    JavaSE①LinkedList和ArrayList的区别:简单来说后者底层实现是数组,而前者是双向链表。②LinkedList的底层实现:对于集合的添加操作就是链表的操作原理,如果是空的添加,那么首尾指针都是当前节点,如果不是空,那就是当前的Last指针指向待添加节点,然后使Last指针指向该节点。而get方法的......
  • 2024/1/18学习进度笔记
    今天研究了外包杯的题目。我们做的主要是一个虚拟数字人的项目,这里记录下在windows上配置pytorch3d以及freqencoder,gridencoder,raymarchingshencoder这几个库的过程首先这几个库是用过setup.py进行安装的,也就是pythonsetup.pyinstall安装前电脑里必须要装好了VisualStu......