分库分表

前言

公司最近在搞服务拆分的内容,由于服务拆分必然会带来数据库的拆分, 同时公司业务单表数据最高已经达到了亿级,于是乎考虑分库分表来对库进行拆分 所以将分库分表提上日程必然是势在必行 特此记录一下对分库分表的研究历程 在这里插入图片描述

何谓

分库分表,字面意思就给人一种手艺活的感觉 既然是一门手艺活,那么当然得先从姿势讲起(手动❀鸡)

垂直

  • 垂直分表:大表拆分成小表,由于大表有很多字段,但是有部分简单查询时这些字段并不常用,因此可以拆分成基础信息表和详细信息表。
  • 垂直分库:大库拆分成小库,一般是按照服务来进行拆分,比如订单库,用户库。

水平

  • 水平分表:将表的行数据进行拆分,比如主键为偶数的表放到order_1表,主键为奇数的数据放到order_2表
  • 水平分库:和水平分表逻辑类似,将数据按照一定规则在不同的库上进行分配

何时需要

数据库在一个公司的架构中,作为最底层的基础建设,对各种上层应用提供数据服务支撑,很容易在整个架构的性能上形成一定瓶颈,常见现象有如下几种:

  1. 数据库连接过多
  2. 查询经过索引等优化后无法满足日常查询
  3. 读写分离已经无法满足

注意点

  1. 分库后如何处理事务
  2. 多数据源管理
  3. 跨库join操作

如何落实

  1. ShardingSphere
  2. MyCat

总结

  1. 分库分表之前要慎重,因为涉及到数据的变更,可能业务代码上还需要作改动
  2. 分库分表的优先级一般位于所有优化方案之后,在索引或读写分离等优化方案无法满足后,如果这些方式不能根本解决问题,才进行分库分表
  3. 数据库设计之初就考虑分库分表,但是不推荐直接分库分表,大多数的产品还是以满足功能和使用为为前提,提前分库分表无疑会增加开发成本

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值