MySQL分库分表
1.sql语句
2.MySQL分库分表
分库分表
垂直拆分
垂直分库:以表为依据,根据业务将不同表拆分到不同表中。
特点:
- 按业务对数据分级管理、维护、监控、拓展
- 在高并发下,提高磁盘IO和数据量连接数
垂直分表:以字段为依据,根据字段属性将不同字段拆分到不同表中。
特点:
- 冷热数据分离
- 减少IO过度争抢,两表互不影响
拆分规则:
- 把不常用的字段单独放在一个表
- 把text,blob等大字段拆分出来放在附表中
水平拆分
水平分库:将一个库的数据拆分到多个表中。
特点:
- 解决了单库大数量,高并发的性能瓶颈问题
- 提高了系统的稳定性和可用性
路由规则:
- 根据id节点取模
- 按id也就是范围路由,节点1(1-100万),节点2(100万-200万)
- ...
水平分表:将一个库的数据拆分到多个表中(可以在同一个库内)。
特点:
- 优化单一表数据量过大而产生的性能问题;
- 避免IO争抢并减少锁表的几率;
分库之后的问题: - 分布式事务一致性问题
- 跨界点关联查询
- 跨界点分页、排序函数
- 主键避重
分库分表中间件 - sharding-sphere
- mycat
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!