MySQL数据库主从原理理解
在日常项目测试过程中,经常会遇到mysql数据库的主从模式,也就是主从复制和读写分离,主数据库(Master)数据有更新时,会同步到从数据库(Slave),Master数据库负责写数据,而多台Slave数据库负责读数据,这样便提升了数据库的并发性能。
主从复制的原理
主要分为以下几个步骤:
1. 主数据库(Master)如果有数据更新会被写到二进制日志(binary log)中;
2. 从数据库启用slave服务,与主数据库连接;
3. 从数据库创建一个I/O线程,从主数据库读取二进制日志并且写入到中继日志(Relay log)中
4. 从数据库创建一个SQL线程,从中继日志中读取内容,将更新的内容写到从数据库
主从复制的作用
1. 如果主数据库发生故障,可以切换到从数据库继续使用,避免数据的丢失;
2. 提高了数据库的并发性能
读写分离
顾名思义就是读和写是分离的,主数据负责事务的写操作,包括insert、update和delete的操作,而从数据库则是负责读操作,即select操作。
主从同步延迟
因为读和写的操作时分开的,所以有些场景下可能会存在主从同步有延迟。
延迟高的原因
- 网络存在延迟
- 主从设备硬件导致
- 不是同步复制,而是异步复制
- 主数据库的并发高
优化延迟
- 优化网络
- 优化mysql的参数
- 从库使用高性能主机
- 从库使用SSD磁盘
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App