mysql中分表的方式有:1.垂直分表,包含有很多列的表拆分成多个表;2.水平分表,将大表根据某个字段和规则分散到多个表中;3.按号段分表,以user_id为区分;
mysql中分表的方式有以下几种
垂直分表
垂直分表就是一个包含有很多列的表拆分成多个表,比如表A包含20个字段,现在拆分成表A1和A2,两个表各十个字段(具体如何拆根据业务来选择)。
优势:在高并发的情境下,可以减少表锁和行锁的次数。
劣势:在数据记录非常大的情况下,读写速度还是会遇到瓶颈。
水平分表
水平切分主要是将某个访问极其频繁的大表再依照某个字段的某种规则来分散到多个表中。
劣势:会给前端程序应用程序的SQL代码的维护带来很大的麻烦,这时候可以使用MySQL的Merge存储引擎实现分表。
按号段分表
按号段分表是以user_id为区分,1~1000的对应DB1,1001~2000的对应DB2,以此类推。
优点:可部分迁移
缺点:数据分布不均