在处理大数据量的表时,会消耗数据库的大量性能,所以,在设计数据库表时,要考虑到此种现象,将数据库设计的合理合法,来提高数据库性能减小数据库压力。
当表记录太多,如产品、的订单、大量客户等,是数据库访问压力的主要来源,此时,从数据库拆分表的角度来减轻压力,可以采用如下两种方法:
1、对表进行水平分割
水平分割:以该表主键PK的某个值为界限,将该表的记录水平拆分为两个表
2、对表进行垂直分割
垂直分割:表字段太多,按照表字段拆分,将一个表垂直分解为两个表
例:有产品表,数据量为10w,数据量稳定;
订单表,数据量为200w,数据量有增长趋势;
用户表,数据量为100w,数据量有增长趋势
方案一:垂直分割,解决了表与表之间的io竞争,未解决单表种数量增长出现的压力
进一步解决方案:
——将产品表和用户表放在一个server上;
——订单表单独放到一个server上
方案二:水平分割,解决了单表种数据量的压力,未解决表与表之间io的竞争
进一步解决方案:
——用户表通过性别拆分为男用户和女用户
——订单表拆分成已完成订单和未完成订单
——产品表,未完成订单放在一个server上
——已完成订单和男用户放在一个server上
——女用户放在一个server上(女用户爱购物)