跳到主要内容

主库和从库

  • 主库是处理所有写操作的数据库,负责将数据变更记录到二进制日志中,并通过复制机制同步到从库
  • 从库则主要用于处理读请求,分担主库的负载,同时作为数据备份,在主库故障时可以接管服务,提高可用性
  • 主从架构的核心优势包括读写分离、负载均衡、数据冗余和高可用性

主库与从库的核心区别​

特性主库(Master)从库(Slave)
读写权限处理所有写操作(INSERT/UPDATE/DELETE),部分支持读操作 [18][6]仅支持读操作(SELECT),不处理写操作 [6]
数据同步机制通过二进制日志(Binlog)记录写操作,并同步到从库 [8][5]通过I/O线程接收主库的Binlog,并重放SQL线程实现数据同步 [8][6]
数据一致性数据源头,保证最终一致性存在主从延迟,可能短时间不一致 [5][164]
高可用性角色单点写入,需通过主从切换实现故障恢复 [5][157]作为热备节点,主库故障时可提升为新主库 [5][36]
性能优化方向优化写性能(如减少索引、事务拆分)优化读性能(如增加索引、负载均衡) [168]

主库的使用场景​

场景描述技术实现引用
写操作集中处理所有数据更新(如订单支付、用户注册)必须通过主库,保障数据强一致性主库作为唯一写入节点,通过Binlog同步到从库
事务型业务高频事务处理场景(如金融交易),需保证ACID特性主库处理事务提交,从库异步复制数据
数据归档存储长期保留的规范化数据,通过管理平台提供数据接口主库永久保存归档数据,不直接支持应用软件存取
强制读主库对数据实时性要求极高的场景(如库存查询),需直接读取主库使用HintManager或中间件强制路由到主库

从库的使用场景​

场景描述技术实现引用
读写分离读操作远多于写操作时,从库分担主库负载(如内容管理系统)中间件(如ShardingSphere)根据请求类型路由读操作到从库
数据分析与报表复杂查询(如大数据分析)在从库执行,避免影响主库性能从库添加额外索引,优化查询性能
灾备与容灾主库故障时,从库自动切换为主库,保障服务连续性通过Keepalived+HAProxy实现自动故障转移
地理分布优化跨地域部署从库,减少访问延迟(如全球业务系统)数据通过级联复制分发到不同区域的从库

主从架构的优缺点​

优点缺点
1. 读写分离:提升并发处理能力(读操作负载均衡)1. 数据延迟:异步复制导致从库数据滞后
2. 高可用:主库故障时快速切换从库2. 复杂度:需处理主从同步、故障切换等逻辑
3. 数据冗余:实时备份降低数据丢失风险3. 资源消耗:主从同步占用网络带宽和存储资源
4. 扩展性:通过增加从库横向扩展读性能4. 一致性风险:强一致性场景需牺牲性能(如半同步复制)