作者:微信小助手
发布时间:2020-08-27T20:38:07
单表500万条记录,正常水平
800万条警戒线
1000万条必须要分库分表
ID
来做
hash
分散订单数据。为了减少迁移的数据量,一般扩容是以倍数的形式增加。比如原来是8个库,扩容的时候,就要增加到16个库,再次扩容,就增加到32个库。这样迁移的数据量,就小很多了。
String table = "success_killed_"+userId%8;
nativeSql = "INSERT INTO "+table+" (seckill_id, user_id,state,create_time)VALUES(?,?,?,?)";
Object[] params = new Object[]{seckillId,userId,(short)0,new Timestamp(System.currentTimeMillis())};
dynamicQuery.nativeExecuteUpdate(nativeSql,params);
low
?今天给大家推荐一款分表神器。
ShardingSphere
,资料丰富,入手简单, 并且已于2020年4月16日成为
Apache
软件基金会的顶级项目,值得信赖。
JDBC
的
ORM
框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。
支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。
支持任意实现JDBC规范的数据库。目前支持 MySQL,Oracle,SQLServer,PostgreSQL以及任何遵循SQL92标准的数据库。
SpringBoot2.2.6.RELEASE + JPA
,部分坐标请自行引入。
pom.xml
:
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<