MySQL高并发高可用架构:分库分表实战与ShardingSphere中间件应用
1. 分库分表概述
当单表数据量达到千万级别,传统的单库单表架构会遇到性能瓶颈。分库分表通过水平拆分将数据分散到多个数据库或表中,是解决海量数据存储和高并发访问的核心技术方案。
1.1 分库分表核心概念
- 水平分库:按照某个字段的规则,将数据分散到不同的数据库
- 水平分表:按照某个字段的规则,将数据分散到同一个数据库的不同表中
- 垂直分库:按照业务维度,将不同业务表拆分到不同数据库
- 垂直分表:将一张表的字段拆分成多张表(主表+扩展表)
2. 分库分表策略设计
2.1 常见分片策略
- 哈希取模分片:
分片键 % 分片数
- 范围分片:按时间或ID范围划分
- 一致性哈希:减少数据迁移量
- 目录分片:维护分片键到分片的映射关系