分库分表解释以及问题出现

前言

博主github
博主个人博客http://blog.healerjean.com

1、解释

我们知道互联网是由非常庞大的用户组成,所以肯定有非常绝大的请求,这些请求又会产生非常巨大的信息存储在数据库中,由于数据量非常巨大,单个数据库的表示很难容纳所有数据,所以就有了分库分表的需求。 对于数据的拆分主要有两个方面 :垂直拆分和水平拆分

1.1、垂直拆分

垂直拆分: 根据业务的维度,将原本的一个库(表)拆分为多个库(表〉,每个库(表)
与原有的结构不同。

1.1.1、垂直分表

也就是“大表拆小表”,基于列字段进行的。一般是表中的字段较多,将不常用的, 数据较大,长度较长(比如text类型字段)的拆分到“扩展表“。 一般是针对那种几百列的大表,也避免查询时,数据量太大造成的“跨页”问题。

1.1.2、垂直分库

垂直分库针对的是一个系统中的不同业务进行拆分,按照业务把不同的数据放到不同的库中。其实在一个大型而且臃肿的数据库中表和表之间的数据很多是没有关系的,比如用户User一个库,商品Producet一个库,订单Order一个库。 切分后,要放在多个服务器上,而不是一个服务器上

1.2、水平拆分

水平拆分: 根据分片(sharding )算法,将一个库(表)拆分为多个库(表),每个库(表)依旧保留原有的结构。

1.2.1、水平分表

1568187931226

针对数据量巨大的单张表(比如订单表),按照某种规则(Hash取模地理区域时间等),切分到多张表里面去。 但是这些表还是在同一个库中

**结果:分表能解决数据量过大造成的查询效率低下的问题 **

问题:但是无法有效解决数据的并发访问能力。,所以库级别的数据库操作还是有IO瓶颈。不建议采用。

1.2.2、水平分库+分表

1568187963745

将数据库拆分,提高数据库的写入能力就是所谓的分库。将单张表的数据切分到多个数据库中,表的结构是一样的 。

结果: 水平分库

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值