MySQL分库分表

分库分表

垂直拆分

垂直分库:以表为依据,根据业务将不同表拆分到不同表中。

特点:

  • 按业务对数据分级管理、维护、监控、拓展
  • 在高并发下,提高磁盘IO和数据量连接数

垂直分表:以字段为依据,根据字段属性将不同字段拆分到不同表中。

特点:

  • 冷热数据分离
  • 减少IO过度争抢,两表互不影响

拆分规则:

  • 把不常用的字段单独放在一个表
  • 把text,blob等大字段拆分出来放在附表中

水平拆分

水平分库:将一个库的数据拆分到多个表中。

特点:

  • 解决了单库大数量,高并发的性能瓶颈问题
  • 提高了系统的稳定性和可用性

路由规则:

  • 根据id节点取模
  • 按id也就是范围路由,节点1(1-100万),节点2(100万-200万)
  • ...

水平分表:将一个库的数据拆分到多个表中(可以在同一个库内)。

特点:

  • 优化单一表数据量过大而产生的性能问题;
  • 避免IO争抢并减少锁表的几率;

    分库之后的问题:
  • 分布式事务一致性问题
  • 跨界点关联查询
  • 跨界点分页、排序函数
  • 主键避重
    分库分表中间件
  • sharding-sphere
  • mycat
posted @   IT小锅巴  阅读(83)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示