当前位置: 首页 > ds >正文

MySQL分库分表

何时需要分库分表

分库分表通常在以下场景中需要考虑:

  • 数据量过大:单表数据量超过千万级别,查询性能明显下降,索引效率降低。
  • 并发压力高:数据库连接数不足,频繁出现锁竞争或资源争用。
  • 业务解耦:不同业务模块需要独立维护数据,避免相互影响。
  • IO瓶颈(磁盘IO,网络IO)、CPU瓶颈(聚合查询,连接数太多)

 

分库:我本来一个数据库,我拆成多个数据库进行存储

分表:我本来一张表的数据,拆成多个表进行存储

垂直拆分

垂直分库

拆分成不同库里面存储不同业务数据。用的比较多,微服务常用


 垂直分表

把字段包含数据多的、不常用的分开。分表并不一定是在多个库,也可以在一个库里

比如:一些很长的数据,比如商品描述,文章等


水平拆分

水平分库

每个库存放的数据都不一样,应用根据路由规则去查询。

  • 按业务分库:例如订单库、用户库分离。
  • 按数据分片:如将订单库按地域拆分为orders_db_eastorders_db_west

 

水平分表 

也是根据路由规则去查询数据

 


    分库分表中间件

    常用工具简化路由逻辑:

    • ShardingSphere:Apache开源的分布式数据库生态。
    • MyCat:基于Proxy的分库分表方案。

    ShardingSphere配置示例(YAML)

     


    注意事项

    • 分布式事务:跨库操作需引入Seata等事务框架。
    • 跨分片查询:避免JOIN,改用冗余字段或业务层聚合。
    • ID生成:使用雪花算法(Snowflake)替代自增ID。
    • 扩容难度:预先设计好分片键的扩展性。

     

    http://www.xdnf.cn/news/8710.html

    相关文章:

  • vue3中使用computed
  • Spark集群架构解析:核心组件与Standalone、YARN模式深度对比(AM,Container,Driver,Executor)
  • kafka之操作示例
  • 大文件上传,对接阿里oss采用前端分片技术。完成对应需求!
  • 【MySQL】第7节|Mysql锁机制与优化实践以及MVCC底层原理剖析
  • ubuntu 安装latex
  • 清除 Ubuntu 磁盘空间
  • 安卓开发用到的设计模式(2)结构型模式
  • 开发者工具箱-鸿蒙金额转换开发笔记
  • R语言学习--Day08--bootstrap原理及误区
  • Ollama01-安装教程
  • 【MySQL】07.表内容的操作
  • Android 16系统源码_自由窗口(一)触发自由窗口模式
  • Gateway全局过滤器:接口耗时统计与黑白名单配置
  • R语言科研编程-柱状图
  • STM32 定时器输出比较深度解析:从原理到电机控制应用 (详解)
  • 黑马点评双拦截器和Threadlocal实现原理
  • 行列式的线性性质(仅限于单一行的加法拆分)
  • 电机控制储备知识学习(五) 三项直流无刷电机(BLDC)学习(四)
  • 思科硬件笔试面试题型解析
  • 7:OpenCV—图像形态学处理
  • 深度学习实战:从图像分类到文本生成的完整案例解析
  • DAY 35 模型可视化与推理
  • 力扣面试150题--求根节点到叶节点数字之和
  • 如何屏蔽mac电脑更新提醒,禁止系统更新(最新有效方法)
  • 5060显卡驱动PyCUDA开发环境搭建
  • 25. 日志装饰器的开发
  • 使用 Go 语言实现完整且轻量级高性能的 MQTT Broker
  • Vue3 Composition API: 企业级应用最佳实践方案
  • SDL2常用函数:SDL_Texture 数据结构及使用介绍