Loading

数据库水平拆分和垂直拆分区别

案例:
    简单购物系统暂设涉及如下表:
1.产品表(数据量10w,稳定)
2.订单表(数据量200w,且有增长趋势)
3.用户表 (数据量100w,且有增长趋势)
以mysql为例讲述下水平拆分和垂直拆分,mysql能容忍的数量级在百万静态数据可以到千万
 
垂直拆分:
解决问题:
表与表之间的io竞争
不解决问题:
单表中数据量增长出现的压力
方案:
把产品表和用户表放到一个server上
订单表单独放到一个server上
 
水平拆分:
解决问题:
单表中数据量增长出现的压力
不解决问题:
表与表之间的io争夺
 
方案:
用户表通过性别拆分为男用户表和女用户表
订单表通过已完成和完成中拆分为已完成订单和未完成订单
产品表 未完成订单放一个server上
已完成订单表盒男用户表放一个server上
女用户表放一个server上(女的爱购物 哈哈)

怎么进行表的水平拆分和垂直拆分这个要根据业务来定,水平拆分就是分库分表但是表结构全一样。垂直拆分就是把一张宽表分成多个小表把经常一起使用的列放到一起。不过无论怎么做都要先了解业务场景。

 

原文链接:http://blog.csdn.net/zljjava/article/details/38422387

posted @ 2017-03-06 17:42  dai.sp  阅读(1614)  评论(0编辑  收藏  举报