分库分表

数据库的演变:

 

1:单表单库--》项目的累加数据,单表的性能瓶颈

 

2:数据量=》500w;索引=》单独指向区(索引片)查询的效率

 

3:访问量大:--》主从读写(一主一从=》一主多从)

 

4:访问--》操作 记录数据=》数据量增加(单表的索引页出现瓶颈)=》表分区

 

分表=》垂直分表 表结构 减少的是表的大小

 

分表=》水平切分,减少一个表的数据量

 

5:分库=》根据业务;比如订单作为单独一个库

 

 

分库分表:

单边数据量大=》扫描行数多,io高=》查询慢

 

解释:表特别大

 

电商平台:

很多商家

用户很多=》产生很多订单

 

订单有个特点:用户习惯不会去考虑查询以前的订单

 

订单有时间关系

实际用户考虑:三个月=》半年=》1年

 

 

假设order表

每个月100-180

 

1年=》12个200w

2400w

10年=》24000w

 

分表 (600W): 单表500w,总量5个G再进行分表

1-3 order_2019_0103

 

4-6 order_2019_0406

 

7-9 order_2019_0709

 

10-12 order_2019_1012

 

分表切分方式:垂直切分,水平切分

垂直切分:按字段分,(在项目之初建立好)

 

水平切分:切分方式不固定,没有固定的公式

规则,项目运行之后进行切分

 

一旦表切分,基本就和join 拜拜了=》查询问题,实际应用中是

水平和垂直一起使用

 

切分规则:根据时间,根据取模,根据数据量,等等

 

水平切分之后,必然会对一些查询特别不友好。

 

分表查询问题

 

水平切分,不是手动切分的(定时器切分数据表)

垂直切分 是手动

 

CREATE TABLE `data_order_2018` AS SELECT * FROM data_order

 

 

 

 

 

 

分库:

 

为什么需要分库?

mysql

 

按业务:订单相关的业务分库

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值