1.水平拆分
根据数据库表行进行拆分 一般来说一张表数据量达到200W,操作速度就会变慢,我们现在分成四个表插入时用一直临时表生成ID,用取模的方式确定插入那张表
tableName = 'users'.'2'
Select * from users2 where id = 17;
在insert时还需要一张临时表uid_temp来提供自增的ID,该表的唯一用处就是提供自增的ID;
insert into uid_temp values(null);
得到自增的ID后,又通过取模法进行分表插入;
注意,进行水平拆分后的表,字段的列和类型和原表应该是相同的,但是要记得去掉auto_increment自增长
2.垂直拆分
垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表
把不常用的字段单独放在一张表;
把text,blob等大字段拆分出来放在附表中;
经常组合查询的列放在一张表中;垂直拆分更多时候就应该在数据表设计之初就执行的步骤,然后查询的时候用join关键起来即可;
网友评论