数据库之分库分表

一.什么是分库分表.

分库分为垂直分库和水平分库.

1.垂直分库.(大系统拆成小系统)
根据不同的业务.比如订单,库存.
2.水平分库.
根据id最后一位数/库的数量(2),余0,就是db1,余1就是db2.

分表分为垂直分表和水平分表.

3.垂直分表.(大表拆成小表)
表之间字段不一样有共同的字段,例id,可以根据并集能查出所有数据.
4.水平分表.
如果只有分表,完全可以根据id最后一位数/库的数量来分表,但是如果有分库分表,分库要根据id倒数第二位数/库的数量来分表.
查询使用 union all 将所有数据查出.

二.为什么要用分库分表?

单库:单库性能是一定的,所以他的io读写是一定的.如果想增加数据库性能,可以垂直分库,即订单库,库存库等去支撑.
         也可以通过水平分库,即多个订单库去支持订单业务.

单表:单表中字段太多,字段太多,开销增加,可以垂直分表,即大表转小表,这样每次查询会少很多不必要的字段,
        也可以通过水平分表,比如根据数量1-2000,根据时间,根据省份等等,拆成字段相同数据不同的多个表来支撑业务.

 

三.怎么用分库分表?

推荐使用mycat数据库中间件,包括数据库读写分离也可以通过mycat来解决.

四.分库分表如果不够用了,怎么解决?

冷热数据分离.

思想:比如保存订单信息,保存双份,在表1和表2中,表中使用定时任务定时删除30天以前的订单,查询先会去表1查,有就有,没有去表2查.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值