2.5.3把trade_0...trade_10表的记录加起来,看是否是trade表的总记录数 2.5.4以上是把已有的数据拆分成多张表了,那么查询和插入如何操作呢?因为流水是和用户的操作相关的,所以查询和插入的时候,可以使用拼接字符串的方式进行插入数据,例如上面的拆分方法就可以这样拼接
int suffix = user_id%10;
String table_name = "trade_" + suffix;
INSERT INTO table_name(...) values(...);
或者
SELECT * FROM table_name WHERE ...; 2.5.5总结,由于以上拆分的表是根据已有的用户ID进行拆分的,先有用户,再有流水记录,所以这种业务做拆分是比较容易的 3.1由于用户量的增长,对用户表也要做数据拆分,拆分方案和以上相同,拆分为user_main_0...user_main_5
3.2现在的问题是,用户插入的时候,我们不知道用户ID是多少,也就意味着不知道应该往user_main_0...user_main_5那张表中插入数据 3.3为了解决以上问题我们可以先执行一下SQL语句
mysql> SELECT AUTO_INCREMENT FROMinformation_schema.TABLES WHERE TABLE_NAME='user_main'; 它返回的是当前表的下一个自增长ID的值 3.4通过以上SQL语句已经得到了当前user_main表下一个ID值,下面创建user_main_uuid表
mysql> CREATE TABLEuser_main_uuid(user_main_next_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT); 3.5然后把“3.3 SQL语句”返回的值插入到user_main_uuid中
3.6那么用户注册的时候,提交用户填写的信息,进入到controll的时候,校验完用户信息以后,首先先查user_main_uuid表的user_mian_next_id字段返回的值,然后根据这个值%5,等于几,就给user_main_x中插入 3.7还有一个问题,用户注册完成之后,应该把user_main_next_id的值自动加1,否则,下个用户注册的时候ID会重复导致不能成功插入数据,所以在把数据成功插入到对应的user_main_x表中以后,再执行以下SQL语句
mysql> INSERT INTO user_main_uuidVALUES(NULL);