MYSQL四大经典架构

322 阅读2分钟

一、单机架构

架构示意图:

graph TD
    A[客户端] --> B[MySQL单实例]
    B --> C[本地磁盘数据文件]

核心特点:

  1. 集中式存储:所有数据存储在一台服务器的本地磁盘中,客户端直接连接单一MySQL实例。

  2. 适用场景:个人博客、小型企业官网(日访问量<1万)、开发测试环境。

  3. 优缺点:
    • 优点:部署简单、成本低。

    • 缺点:单点故障风险高(硬盘损坏可能导致全损)、无法横向扩展。


二、主从复制架构

架构示意图:

graph TD
    A[客户端写操作] --> B[主库Master]
    B -->|异步/半同步复制| C[从库Slave1]
    B -->|异步/半同步复制| D[从库Slave2]
    C --> E[客户端读操作]
    D --> E

核心特点:

  1. 读写分离:主库处理写操作,从库通过二进制日志(binlog)复制数据并处理读操作。

  2. 同步模式:
    • 异步复制:默认模式,主库写入后立即返回,存在毫秒级延迟(适用电商商品展示)。

    • 半同步复制:至少一个从库确认接收日志后主库才返回(适用金融交易)。

  3. 适用场景:高并发读场景(如新闻门户、电商详情页)。

  4. 优化策略:
    • 从库并行复制(slave_parallel_workers=4

    • 使用ProxySQL中间件实现自动读写分离。


三、分库分表架构

架构示意图:

graph TD
    A[客户端] --> B[分库分表中间件]
    B --> C[分库1-用户表]
    B --> D[分库2-订单表]
    C --> E[水平分表user_0-user_3]
    D --> F[垂直分库订单库]

核心特点:

  1. 数据拆分方式:
    • 水平拆分:按用户ID哈希分片(如user_id%4分4表)。

    • 垂直拆分:按业务模块分离(用户表与订单表独立分库)。

  2. 中间件选择:
    • ShardingSphere(支持分布式事务)

    • MyCat(配置简单,适合中小规模)

  3. 适用场景:亿级用户数据(如社交平台消息记录、电商订单表)。

  4. 挑战与解决:
    • 跨库查询:通过全局表(如地区编码表)减少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


总结

四大架构的选型需结合业务需求:
• 单机架构:初创项目首选,成本低但需定期备份。

• 主从复制:读写分离场景标配,需注意同步延迟。

• 分库分表:应对海量数据,但需解决跨库查询问题。

• 高可用集群:金融级系统必选,保障数据强一致。