水平拆分 垂直拆分

2018-09-29  本文已影响44人  Jetlag时

1.水平拆分
根据数据库表行进行拆分 一般来说一张表数据量达到200W,操作速度就会变慢,我们现在分成四个表插入时用一直临时表生成ID,用取模的方式确定插入那张表
_GET['id'] = 17, 17%4 + 1 = 2,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关键起来即可;

上一篇下一篇

猜你喜欢

热点阅读