在处理大数据量的表时,会消耗数据库的大量性能,所以,在设计数据库表时,要考虑到此种现象,将数据库设计的合理合法,来提高数据库性能减小数据库压力。

当表记录太多,如产品、的订单、大量客户等,是数据库访问压力的主要来源,此时,从数据库拆分表的角度来减轻压力,可以采用如下两种方法:

1、对表进行水平分割

水平分割:以该表主键PK的某个值为界限,将该表的记录水平拆分为两个表

2、对表进行垂直分割

垂直分割:表字段太多,按照表字段拆分,将一个表垂直分解为两个表


例:有产品表,数据量为10w,数据量稳定;

    订单表,数据量为200w,数据量有增长趋势;

    用户表,数据量为100w,数据量有增长趋势

方案一:垂直分割,解决了表与表之间的io竞争,未解决单表种数量增长出现的压力

    进一步解决方案:

        ——将产品表和用户表放在一个server上;

        ——订单表单独放到一个server上

方案二:水平分割,解决了单表种数据量的压力,未解决表与表之间io的竞争

    进一步解决方案:

        ——用户表通过性别拆分为男用户和女用户

        ——订单表拆分成已完成订单和未完成订单

        ——产品表,未完成订单放在一个server上

        ——已完成订单和男用户放在一个server上

        ——女用户放在一个server上(女用户爱购物)