一、单机架构
架构示意图:
graph TD
A[客户端] --> B[MySQL单实例]
B --> C[本地磁盘数据文件]
核心特点:
-
集中式存储:所有数据存储在一台服务器的本地磁盘中,客户端直接连接单一MySQL实例。
-
适用场景:个人博客、小型企业官网(日访问量<1万)、开发测试环境。
-
优缺点:
• 优点:部署简单、成本低。• 缺点:单点故障风险高(硬盘损坏可能导致全损)、无法横向扩展。
二、主从复制架构
架构示意图:
graph TD
A[客户端写操作] --> B[主库Master]
B -->|异步/半同步复制| C[从库Slave1]
B -->|异步/半同步复制| D[从库Slave2]
C --> E[客户端读操作]
D --> E
核心特点:
-
读写分离:主库处理写操作,从库通过二进制日志(binlog)复制数据并处理读操作。
-
同步模式:
• 异步复制:默认模式,主库写入后立即返回,存在毫秒级延迟(适用电商商品展示)。• 半同步复制:至少一个从库确认接收日志后主库才返回(适用金融交易)。
-
适用场景:高并发读场景(如新闻门户、电商详情页)。
-
优化策略:
• 从库并行复制(slave_parallel_workers=4)• 使用ProxySQL中间件实现自动读写分离。
三、分库分表架构
架构示意图:
graph TD
A[客户端] --> B[分库分表中间件]
B --> C[分库1-用户表]
B --> D[分库2-订单表]
C --> E[水平分表user_0-user_3]
D --> F[垂直分库订单库]
核心特点:
-
数据拆分方式:
• 水平拆分:按用户ID哈希分片(如user_id%4分4表)。• 垂直拆分:按业务模块分离(用户表与订单表独立分库)。
-
中间件选择:
• ShardingSphere(支持分布式事务)• MyCat(配置简单,适合中小规模)
-
适用场景:亿级用户数据(如社交平台消息记录、电商订单表)。
-
挑战与解决:
• 跨库查询:通过全局表(如地区编码表)减少JOIN。• 分布式ID:Snowflake算法生成唯一ID。
四、高可用集群架构
架构示意图:
graph TD
A[客户端] --> B[高可用集群]
B --> C[节点1-Master]
B --> D[节点2-Slave]
B --> E[节点3-Slave]
C <-->|Paxos协议| D
C <-->|Paxos协议| E
主流方案对比:
| 方案 | 一致性保障 | 适用场景 | 技术特点 |
|---|---|---|---|
| MHA | 最终一致 | 已有主从架构升级 | 故障转移快(30秒内) |
| PXC集群 | 强一致 | 金融交易系统 | 多主写入、Galera协议同步 |
| MGR | 强一致 | 官方推荐方案 | 内嵌于MySQL,Paxos协议 |
适用场景:
• 银行核心交易系统(强一致性要求)
• 跨地域多活部署(如全球电商站点)
部署要点:
• 三节点配置MGR集群,通过START GROUP_REPLICATION启动组复制
• 防止脑裂:配置group_replication_auto_increment_increment
总结
四大架构的选型需结合业务需求:
• 单机架构:初创项目首选,成本低但需定期备份。
• 主从复制:读写分离场景标配,需注意同步延迟。
• 分库分表:应对海量数据,但需解决跨库查询问题。
• 高可用集群:金融级系统必选,保障数据强一致。