ShardingSphere分库分表相关

垂直分片

按照业务拆分的方式称为垂直分片,又称为纵向拆分,它的核心理念是专库专用。在拆分之前,一个数据库由多个数据表构成,每个表对应着不同的业务。而拆分之后,则是按照业务将表进行归类,分布到不同的数据库中,从而将压力分散至不同的数据库。

水平分片

水平分片又称为横向拆分。 相对于垂直分片,它不再将数据根据业务逻辑分类,而是通过某个字段(或某几个字段),根据某种规则将数据分散至多个库或表中,每个分片仅包含数据的一部分。

垂直分库

resources目录下新建vertical-db-sharding-config.yml配置文件,存放ShardingSphere数据源、分片规则等配置信息。

application.yml文件中指定YAML配置文件:

server:
  port: 8084
spring:
  datasource:
    # 配置 DataSource Driver
    driver-class-name: org.apache.shardingsphere.driver.ShardingSphereDriver
    # 指定 YAML 配置文件
    url: jdbc:shardingsphere:classpath:vertical-db-sharding-config.yml

vertical-db-sharding-config.yml配置文件中添加用户库、订单库数据源:

dataSources:
  # 用户库
  ds_user: # 逻辑名称
    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.56.101:3308/user
    username: root
    password: "root"
  # 订单库
  ds_order:
    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.56.101:3306/order
    username: root
    password: "root"
    hikari:
      minimum-idle: 10      
      idle-timeout: 60000    
      maximum-pool-size: 12  
      auto-commit: true     
      max-lifetime: 120000    
      connection-timeout: 60000  

首先需要添加数据分片规则标识!SHARDING

# 规则配置
rules:
  # 标识为数据分片规则
  - !SHARDING

完整配置为:

# 规则配置
rules:
  # 数据分片规则
  - !SHARDING
    # 分片表
    tables:
      # 逻辑表名称
      t_order:
        # 数据节点,数据源名称,多个以逗号分隔,默认使用全部配置的数据源
        actualDataNodes: ds_order.t_order
      t_user:
        actualDataNodes: ds_user.t_user

tables可配置属性说明:

名称 数据类型 说明 默认值
logicTable String 分片逻辑表名称 -
actualDataNodes (?) String 由数据源名 + 表名组成,以小数点分隔。多个表以逗号分隔,支持行表达式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值