schemaName: sharding_db
dataSources:
ds_0:
url: jdbc:mysql://127.0.0.1:3306/course_db_1?serverTimezone=UTC&useSSL=false
username: root
password: root
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
ds_1:
url: jdbc:mysql://127.0.0.1:3306/course_db_2?serverTimezone=UTC&useSSL=false
username: root
password: root
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
shardingRule:
tables:
t_order:
actualDataNodes: ds_${0..1}.t_order_${0..1}
tableStrategy:
inline:
shardingColumn: order_id
algorithmExpression: t_order_${order_id % 2}
keyGenerator:
type: SNOWFLAKE
column: order_id
bindingTables:
- t_order
defaultDatabaseStrategy:
inline:
shardingColumn: user_id
algorithmExpression: ds_${user_id % 2}
defaultTableStrategy:
none:
cd E:\apache-shardingsphere-incubating-4.0.1-sharding-proxy-bin\apache-shardingsphere-incubating-4.0.1-sharding-proxy-bin\bin
start.bat 3308 #用别的端口启动,防止占用
mysql -P3308 -uroot -p
use sharding_db;
CREATE TABLE ds_0.t_order(
order_id bigint(20) primary key,
user_id bigint(20) not null,
status varchar(10) not null
); #此时course_db_1与course_db_2都含俩表t_order_0、t_order_1
select * from t_order;
insert into t_order values(11,1,'iniy');