MySQL最简单的部署是单机部署,即在一个服务器上部署一个MySQL实例,简单方便。但是这样部署的缺点也很明显:
缺乏冗余,数据库为单点,数据库故障将影响整个服务不可用如果磁盘损坏将造成重要数据的永久丢失缺乏扩展性,当服务器压力曾增长时无法扩展所以MySQL提供了一项方便的功能,主从复制,可以建立一个主库,多个从库的拓扑结构,以解决以上几个问题。下图便是主从复制结构的架构图
上边为Web服务器架构,通常用负载均衡实现多个Web服务器承接流量
红色框内为数据库架构:
通常来说写请求要远远小于读请求,可以设想一下,通常我们访问网站,90%以上的时间在浏览信息,只有很少的时候会提交表单修改数据库,所以这个架构对于绝大部分网络应用还是比较合适的。
主从复制的原理
那么从主库到从库的数据同步是怎么实现的呢,我们可以看下图
首先主库所有的数据变更会写到本地服务器的binlog文件中,这也是数据库本身数据可恢复性的要求。然后远程的从库会有一个IO线程,从主库拉取所有未同步的binlog,同步到本地,然后从库的另一个SQL线程回放binlog,向从库的数据应用最新的数据修改,从而完成数据同步,实现数据的一致性
主从延迟
由于这套架构实现了主库和从库的解耦,也就是说主库的更新并不依赖于从库的同步。所以主库会马上更新完成,然后通过网络再发送给从库,从库实际上是有一定的延迟的。
如果数据更新量非常的大,尤其是在一个事务中的时候,从库的延迟可能会加剧,可能会从原本的几十毫秒上升到几秒甚至更多。
主从延迟的优化主要有以下办法:
简介 我们知道Python中有4种数字类型 分别是int float bool和complex。作为科学...
通过使用一个简单的游戏来练习一些基本的 JavaScript 概念,迈出创建交互性动态 ...
TOP云 (west.cn)3月9日消息,最近新顶级 域名 fly.info在国内外曝光率颇高,不...
12月19日至20日,由腾讯主办的2020 Techo Park开发者大会将于北京召开。据了解,...
本文转载自微信公众号「码农读书」,作者码农读书。转载本文请联系码农读书公众...
对于现代软件研发来说 持续、快速、高质量、低风险地交付需求特性 是业务对研发...
可能每个人都听说过Docker,并且大多数开发人员都熟悉并使用过Docker,诸如构建D...
虚拟主机 如何安装php?PHP网站是指采用PHP语言开发的网站程序,通常我们所看到...
作者:铭毅天下 本文将介绍如何基于 Elasticsearch + Kibana 实现 IP 地址分布地...
如果问最近手机市场哪款手机的关注度最高 , 答案一定是三星 Galaxy S21 了。自 1...