美文网首页
分库分表

分库分表

作者: 金陵砍柴人 | 来源:发表于2020-06-24 11:16 被阅读0次

    前言

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


    file

    何谓

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

    垂直

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

    水平

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

    何时需要

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

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

    注意点

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

    如何落实

    1. ShardingSphere
    2. MyCat

    总结

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

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

    相关文章

      网友评论

          本文标题:分库分表

          本文链接:https://www.haomeiwen.com/subject/wucrfktx.html