1.mysql分表分库,水平拆分,mysql集群
- 分库
与业务关系紧密的一个库
其他与业务相关不紧密的,比如用户信息存在另外的库中。
- 分表
当数据集非常大的时候,全都放在一个表里肯定会慢,因此可以考虑,1-3000放一号库,3000-6000放二号库这样分库分表
-
mysql集群
不同的库划分在不同的集群上
2.表的垂直拆分
- 把不常用的字段单独放在一张表;
- 把text,blob等大字段拆分出来放在附表中;
- 经常组合查询的列放在一张表中
垂直拆分更多时候就应该在数据表设计之初就执行的步骤,然后查询的时候用jion关键起来即可;
3.表的水平拆分
水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张的表的数据拆成多张表来存放。
拆分原则 通常情况下,我们使用取模的方式来进行表的拆分;比如一张有400W的用户表users
,为提高其查询效率我们把其分成4张表users1,users2,users3,users4
通过用ID取模的方法把数据分散到四张表内Id%4+1 = [1,2,3,4]
然后查询,更新,删除也是通过取模的方法来查询