sharding-proxy5.X 分库分表和根据时间分表
config-sharding.yaml
schemaName: edu_yjx
dataSources:
ds_0:
url: jdbc:mysql://192.168.1.99:3306/test_0?serverTimezone=UTC&useSSL=false
username: root
password: 123456
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
ds_1:
url: jdbc:mysql://192.168.1.100:3306/test_1?serverTimezone=UTC&useSSL=false
username: root
password: 123456
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
rules:
- !SHARDING
tables:
t_user:
actualDataNodes: ds_${0..1}.t_user_${0..31}
databaseStrategy:
standard:
shardingColumn: openId
shardingAlgorithmName: user_database_inline
tableStrategy:
standard:
shardingColumn: openId
shardingAlgorithmName: user_table_inline
t_msg:
actualDataNodes: ds_${0..1}.t_msg_${(0..6).collect{java.time.LocalDate.now().minusDays(it).format(java.time.format.DateTimeFormatter.ofPattern("yyyy_MM_dd"))}}
databaseStrategy:
standard:
shardingColumn: id
shardingAlgorithmName: msg_database_inline
tableStrategy:
standard:
shardingColumn: openId
shardingAlgorithmName: msg_table_inline
bindingTables:
- t_user
shardingAlgorithms:
user_database_inline:
type: INLINE
props:
algorithm-expression: ds_${(int)(Math.abs(openId.hashCode()) % 64/32)}
user_table_inline:
type: INLINE
props:
algorithm-expression: t_user_${Math.abs(openId.hashCode())%32}
msg_database_inline:
type: INLINE
props:
algorithm-expression: ds_${(id>>24)%2}
msg_table_inline:
type: INLINE
props:
algorithm-expression: t_msg_${new Date((id >> 24) + 1484754361114L).format("yyyy_MM_dd")}
server.yaml
rules:
- !AUTHORITY
users:
- root@%:123456 # 启动该服务的用户密码
- sharding@:123456 # 启动该服务的用户密码 意思就是用这个密码来登录shardingshare生成的模拟mysql
provider:
type: NATIVE
props:
max-connections-size-per-query: 1 # 一次查询请求在每个数据库实例中所能使用的最大连接数。
kernel-executor-size: 16 # 线程池大小 默认值: CPU核数
kernel-acceptor-size: 16 # 用于设置接收客户端请求的工作线程个数,默认为CPU核数*2
proxy-frontend-flush-threshold: 128 # 设置传输数据条数的 IO 刷新阈值
proxy-opentracing-enabled: false #是否开启链路追踪功能,默认为不开启
proxy-hint-enabled: false #是否启用hint算法强制路由 默认false
sql-show: ture #是否打印sql 默认falsefalse
# show-process-list-enabled: false
# Proxy backend query fetch size. A larger value may increase the memory usage of ShardingSphere Proxy.
# The default value is -1, which means set the minimum value for different JDBC drivers.
proxy-backend-query-fetch-size: -1
check-duplicate-table-enabled: false
sql-comment-parse-enabled: false
proxy-frontend-executor-size: 0 # Proxy frontend executor size. The default value is 0, which means let Netty decide.
# Available options of proxy backend executor suitable: OLAP(default), OLTP. The OLTP option may reduce time cost of writing packets to client, but it may increase the latency of SQL execution
# if client connections are more than proxy-frontend-netty-executor-size, especially executing slow SQL.
proxy-backend-executor-suitable: OLAP
# proxy-frontend-max-connections: 0 # Less than or equal to 0 means no limitation.
# sql-federation-enabled: false
螃蟹在剥我的壳,笔记本在写我,漫天的我落在枫叶上雪花上,而你在想我。
--章怀柔

浙公网安备 33010602011771号