
垂直分片
按照业务拆分的方式称为垂直分片,又称为纵向拆分,它的核心理念是专库专用。在拆分之前,一个数据库由多个数据表构成,每个表对应着不同的业务。而拆分之后,则是按照业务将表进行归类,分布到不同的数据库中,从而将压力分散至不同的数据库。
水平分片
水平分片又称为横向拆分。 相对于垂直分片,它不再将数据根据业务逻辑分类,而是通过某个字段(或某几个字段),根据某种规则将数据分散至多个库或表中,每个分片仅包含数据的一部分。
垂直分库
在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 | 由数据源名 + 表名组成,以小数点分隔。多个表以逗号分隔,支持行表达式 |

最低0.47元/天 解锁文章
449

被折叠的 条评论
为什么被折叠?



