砍材农夫砍材农夫
  • vuepress搭建
  • hexo搭建
  • 面试题
  • 常用工具

    • git
    • gradle
    • Zadig
    • it-tools
    • 开源推荐
    • curl
  • 大前端

    • npm
    • webpack
    • 微信
    • 正则
    • uniapp
    • nodejs
  • java

    • java基础
    • jdk体系
    • jvm
    • spring
    • spring_cloud
    • spring_boot
    • 分库分表
    • zookeeper
  • python

    • python基础
  • 网关

    • spring_cloud_gateway
    • openresty
  • 高可用

    • 秒杀
    • 分布式
    • 缓存一致
  • MQ

    • MQ
    • rabbitMQ
    • rocketMQ
    • kafka
  • 其它

    • 设计模式
    • 领域驱动(ddd)
  • 关系型数据库

    • mysql5.0
    • mysql8.0
  • 非关系型数据库

    • redis
    • mongoDB
  • 分布式/其他

    • ShardingSphere
    • 区块链
  • 向量数据库

    • M3E
    • OPEN AI
  • Jmeter
  • fiddler
  • wireshark
  • AI入门
  • AI工具
  • AI集成框架
  • 大模型
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • docker
  • k8s
  • devops
  • nginx
  • 元宇宙
  • 区块链
  • 物联网
  • linux
  • webrtc
  • web3.0
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 中考
  • 投资
  • 保险
  • vuepress搭建
  • hexo搭建
  • 面试题
  • 常用工具

    • git
    • gradle
    • Zadig
    • it-tools
    • 开源推荐
    • curl
  • 大前端

    • npm
    • webpack
    • 微信
    • 正则
    • uniapp
    • nodejs
  • java

    • java基础
    • jdk体系
    • jvm
    • spring
    • spring_cloud
    • spring_boot
    • 分库分表
    • zookeeper
  • python

    • python基础
  • 网关

    • spring_cloud_gateway
    • openresty
  • 高可用

    • 秒杀
    • 分布式
    • 缓存一致
  • MQ

    • MQ
    • rabbitMQ
    • rocketMQ
    • kafka
  • 其它

    • 设计模式
    • 领域驱动(ddd)
  • 关系型数据库

    • mysql5.0
    • mysql8.0
  • 非关系型数据库

    • redis
    • mongoDB
  • 分布式/其他

    • ShardingSphere
    • 区块链
  • 向量数据库

    • M3E
    • OPEN AI
  • Jmeter
  • fiddler
  • wireshark
  • AI入门
  • AI工具
  • AI集成框架
  • 大模型
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • docker
  • k8s
  • devops
  • nginx
  • 元宇宙
  • 区块链
  • 物联网
  • linux
  • webrtc
  • web3.0
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 中考
  • 投资
  • 保险
  • ShardingSphere

    • 介绍
    • 读写分离
    • proxy
    • 集成问题

分库分表

  • 垂直分片

按照业务维度将表拆分到不同的数据库中,专库专用,分担数据库压力

  • 水平分片

按某种规则将单表数据拆分到多张表中,从理论上突破了单机的数据量的瓶颈,是分库分表的标准解决方案

  • 分片方案

分片的键位、分片的算法

分片的方案

  • 取模分片

优点: 数据存放比较均匀
缺点: 后期扩展需要批量迁移数据

  • 范围分片

优点: 扩容不需要迁移数据
缺点: 数据存放不均匀,容易产生数据倾斜存放

分库分表要解决的问题

  • 主键唯一性
  • 分布式事务
  • SQL路由
  • 结果归并

何时分库分表

  • 阿里开发者手册建议预估三年内单表数据量超过500W或者单表数据文件大于2G

动态数据源切换

  • AbstractRoutingDataSource (根据前端请求参数动态切换数据源)
  • dynamic-datasouce (预设每个服务对应的数据源,不同服务使用不同的数据源)

ShardingSphere

  • Inline策略
  • Standard策略
  • Complex策略
  • Hint策略
Last Updated:
Contributors: jysemel