MYSQL的主从库原理

设置主数库和从数库的原因?

数据库是用来存储数据的,为什么要设置主数据库和从数据库呢,往往是为了读写分离,减轻因读取数据的操作太频繁了,导致网站崩掉,服务器宕机,影响正常的网站运行。

mysql主从同步的原理

主从库同步的原理图

举例说明一下主从库的同步的原因,需要用到以下的这个名词,主数据服务器,从数据服务器slave,二进制日志(binary log file),中继日志(relay log file),I/O线程,SQL线程。

主数据服务器master:主要用来从业务服务写入数据或者修改更新数据

从数据服务器slave:主要用来读取业务所需要的数据

二进制日志(binary log file):用来存储写入以及更新的数据信息

中继日志(relay log file):承接主服务器数据信息,转存在从服务器上

I/O线程:监听主服务器是否发生数据更改的行为

SQL线程:将主服务器数据更改的数据从中继日志文件中读取数据写入到从数据服务器中

主数据服务器master进行写入数据或者更新数据操作的时候,数据更改会记录在二进制日志(binary log file)中,主服务器master从服务器slave进行通讯的是I/O线程,它将修改的数据异步复制写入到从服务器slave中继日志(relay log file)中,从服务器slave与中继日志之间通信使用SQL线程,SQL线程可以异步从中继日志(relay log file)中读取数据后再写入到自己的数据库中,就完成了数据的主从同步功能。

从库为什么不能直接存储二进制日志文件里面的数据?

数据的主从同步就是为了让计算机快速的进行读写操作,而且是大批量的数据,一旦大量数据进行写入或者更新数据,从数据库如果直接从二进制日志来接收,数据是以队列形式进行传输的,若队列的数据没有快速处理,堆积起来,从服务器可能也会崩溃宕机,所以从性能上考虑,从服务器创建了I/O线程对象将数据转到中继日志,起个缓存功能。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • https://www.cnblogs.com/along21/p/8011596.html https://bl...
    SkTj阅读 8,325评论 1 4
  • 1、复制概述: MySQL内建的复制功能是构建大型,高性能应用程序的基础。将mysql的数据分布到多个系统上去,这...
    魔法师_阅读 10,933评论 0 5
  • 虽然不能恢复百分百,至少能将损失降到最低。 有个问题测试: 主从同步时,主库网络断开,binlog dump线程...
    kun_zhang阅读 8,222评论 0 6
  • 今天骨骼见习,本想把下肢骨多预习一下,真的是看不完了!下午也问诊,增加理解。看了很多影像片子,看这一次的片子数量快...
    小小小小鸟飞阅读 949评论 0 1
  • 2019.10.10 星期四 晴 28°C 上午10:00 决定开始记下每天的心情和烦恼,有些话无法说给任何人听,...
    一支加满阅读 1,144评论 1 1