文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

读写分离最全详解(图文全面总结)

2024-11-29 22:34

关注

如下图所示:

图片

写操作(包括:插入、更新和删除操作...等等),由主数据库(Master)处理。

而读操作(包括:查询...等操作),由从数据库(Slave)处理。

这就是“读写分离”,通过将读操作分散到多个从数据库上,减少主数据库的负载,从而,极大的提升整个系统的并发处理能力。

读写分离实现原理

上面我们谈了“读写分离”的价值,对于互联网应用“读多”和“写少”的场景,比如:电商等典型业务是非常适用的。

知道了其重要性,下面我接着谈:如何来实现”读写分离“?

读写分离的架构实现,整体如下图所示:

图片

从上图可看出,读写分离是基于:“主从复制架构”来实现的。

通过上面的讲述,知道了实现机制依赖于“主从复制”。

所以,要掌握好读写分离的原理,还需要掌握“主从复制”的实现机制原理。

下面,我接着谈@mikechen

我以MySQL的主从复制为例,整体架构实现,如下图所示:

图片

实现步骤,大致分为如下几点:

第一步:主数据库记录二进制日志(binlog);

比如:当主数据库执行写操作,比如:INSERT、UPDATE、DELETE。。。等操作时,首先,这些操作会被记录到二进制日志中。

MySQL 二进制日志(Binlog):是 MySQL 服务器用来记录所有更改数据库数据操作的日志文件,包括 DDL 语句和 DML 语句。

[mysqld]
log-bin=mysql-bin           # 启用二进制日志并指定日志文件前缀
server-id=1                 # 设置服务器唯一 ID
binlog-format=row           # 设置 Binlog 格式(row、statement、mixed)
expire-logs-days=7          # 自动清除超过7天的 Binlog 文件
max_binlog_size=100M        # 单个 Binlog 文件的最大大小

所有数据更改的详细信息,都放在这个二进制文件中,是主从复制的核心。

第二步:从数据库读取二进制日志(binlog);

从数据库通过I/O线程,连接到主数据库,读取主数据库的二进制日志,并将其保存到本地的中继日志(relay log)中。

大致流程:

第三步:从数据库应用中继日志(relay log)。

从数据库的SQL线程读取中继日志,并重放其中的写操作,更新从数据库中的数据。

这样,从数据库的数据状态就会逐步跟上主数据库。

通过以上步骤,主从复制实现了主数据库与从数据库之间的数据同步,从而可以实现读写分离了。

读写分离总结

总之,读写分离是提升数据库性能和扩展性的有效手段,通过将读操作分散到多个从数据库上,可以显著提高系统的并发处理能力、和响应速度。

来源:mikechen的互联网架构内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯