MYSQL主从同步的原理,从库执行的二进制文件和正常query的区别在哪?

simple__ 发布于 2014/04/30 17:48
阅读 497
收藏 2

关于MYSQL的主从同步,最主要的是要了解MYSQL的主从同步是如何工作的也即主从同步的原理,通过下图能很明白的指导其工作的过程:

大致描述一下过程:从服务器的IO线程从主服务器获取二进制日志,并在本地保存为中继日志,然后通过SQL线程来在从上执行中继日志中的内容,从而使从库和主库保持一致。主从同步的详细过程如下:

  1. 主服务器验证连接。
  2. 主服务器为从服务器开启一个线程。
  3. 从服务器将主服务器日志的偏移位告诉主服务器。
  4. 主服务器检查该值是否小于当前二进制日志偏移位。
  5. 如果小于,则通知从服务器来取数据。
  6. 从服务器持续从主服务器取数据,直至取完,这时,从服务器线程进入睡眠,主服务器线程同时进入睡眠。
  7. 当主服务器有更新时,主服务器线程被激活,并将二进制日志推送给从服务器,并通知从服务器线程进入工作状态。
  8. 从服务器SQL线程执行二进制日志,随后进入睡眠状态。

我的疑惑是从服务器一边提供大量的读操作,而且sql线程进行二进制日志的同步,想问下进行二进制日志的操作到底跟正常的query请求有什么区别, 要是一样的,那且不是从服务器即进行读又进行写,这样效率会有多大影响呢

加载中
0
eechen
eechen

slave拿到master的binlog后需要转换成SQL才能插入数据库完成同步。
对于slave而言,同步复制master变更的binlog数据肯定存在写操作,这是不可避免的。

simple__
simple__
那slave 即进行读操作,又进行写操作,且不是负载会比较高?
0
eechen
eechen

回复 @simple__ : master被写入新的内容,slave为了同步新的数据才会进行增量写入操作,复制肯定会伴有写入,这不很正常吗?配置主从后,master多了被slave读二进制日志的操作,但却大大增强了系统的查询(读)性能,利远远大于弊。况且SSD走PCIe,在读写速度和IOPS上,都要优于SATA3。如果PCIe SSD组RAID0(PCIe存储阵列卡),性能将更加劲爆。

阿里技术沙龙《SSD + RAID卡和PCI-E flash卡在淘宝的应用实践》
http://club.alibabatech.org/resource_detail.htm?topicId=53

返回顶部
顶部