数据库分库分表

一、为什么要分库分表

分表

单表到达几千万数据的时候,会极大影响sql执行的性能,将一个表的数据放到多个表中,这样可以控制每个表的数据量在可控范围内。

分库

一个库按经验而言,最多支撑到并发2000,一定要扩容,而且一个健康的单库并发值最好保持在每秒1000左右,不要太大。

总结

分表能够解决数据量过大带来的查询效率下降的问题;分库可以解决面对高并发的读写访问压力的问题。

二、如何对数据库进行垂直拆分或水平拆分的?

水平拆分

把一个表的给弄到多个表里去,每个库的表结构都一样,只不过每个库表放的数据不同。

垂直拆分

将一个有很多字段的表拆分成多个表或多个库上去。每个库表的结构都不一样,每个库表都包含部分字段。一般来说,会将访问频率很高的字段放到一个表去(这种列的数量比较少),将较低访问频率放到另一个表里去(这种列的数量比较多)。

分库分表的方式

1.按照range来分
每个库一段连续的数据,比如按时间范围来分。
2.按照hash来分
某个字段hash一下均匀分散,这个比较常用。hash分发,可以平均分配每个库的数据量和请求压力。坏处在于扩容起来比较麻烦,数据迁移后,之前的数据都需要重新计算hash值重新分配到不同的表或库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值