【怒怼大厂面试官】精通MySQL?考考你MySQL主从复制

alt

  • 👉以贴近现实的【面试官面试】形式帮助你学习后端技术
  • ❤创作不易,不妨点赞、收藏、关注支持一下
  • 🔥本期是《MySQL系列》,其他系列博客请订阅专栏《后端训练营》

《Redis系列》

  1. 我看你们项目用的Redis主从,数据同步了解吗⭐⭐
  2. 听说你精通Redis?来说说Redis哨兵⭐⭐
  3. 我看你简历写了精通Redis?来说说Redis持久化⭐⭐
  4. 知道Redis集群和Redis主从有什么区别吗⭐⭐
  5. 那有序集合为什么要同时使用字典和跳跃表⭐⭐

《MySQL系列》

  1. MySQL主从复制了解吧⭐⭐
  2. 你先说说知道哪些MySQL的高级特性⭐⭐

《Kafka系列》

  1. 你说说Kafka是怎么保证消息可靠性的⭐⭐
  2. Kafka事务一般在什么场景下使用呢⭐⭐
  3. 那Kafka消费者手动提交、自动提交有什么区别⭐⭐

《ZooKeeper系列》

  1. 知道ZooKeeper有什么应用场景吗⭐⭐
  2. 那ZooKeeper为什么还采用ZAB协议⭐⭐

《多线程系列》

  1. 你先说说synchronized的实现原理⭐⭐

《JVM系列》

  1. 你说说都有哪些垃圾回收器⭐⭐

面试官:听说你精通MySQL,那我就考考你吧😊


1. MySQL主从复制

面试官:MySQL主从复制了解吧?

嗯嗯了解的。主要是利用了MySQL的Binary Log二进制文件。

  1. 主库把数据更改记录到Binary Log中
  2. 备库建立TCP/IP连接后通过IO线程获取Binary Log,同时将Binary Log复制到中继日志Relay Log
  3. 备库再读取Realy Log将数据进行复制

alt


面试官思考中…


1.1 二进制文件的日志格式

面试官:那这个日志格式是怎样的,有没听说过有好几种?

有听说过的。主要有3种。

  1. 基于语句的二进制文件。保存了MySQL所有执行过的SQL语句
  2. 基于行的二进制文件。把行记录发生的所有事件都保存起来
  3. 混合模式。主要就是前面两种的混合使用

面试官思考中…


1.2 二进制文件选择

面试官:知道哪种二进制格式比较好吗?

emmmm,我认为是第二种。

是这样的,基于语句这种的话,有数据不一致的问题出现,例如某条删除SQL语句没有使用order排序,导致每次执行删除的数据都是不同的。

而第三种混合模式的话不确定因素太多,例如它采用了基于语句的模式,同样会发生刚刚我说到的问题。


面试官思考中…


2. 全局事务标识符

面试官:那我把二进制文件丢给从库,从库是不是复制整个文件?

噢噢不是的。MySQL从库只会复制它本身缺失的最新数据,主要是利用了二进制文件里的全局事务标识符

每一次事务提交,都会被分配一个唯一的全局事务标识符,MySQL从库是根据本身当前全局事务标识符找到二进制文件对应位置,才进行复制而不是复制全部。

面试官抓抓脑袋,继续看你的简历......


emmmm,得想想考点你不懂的😰

未完待续。。。

好了,今天的分享就先到这,我们下期【MySQL系列】继续。

📚以贴近现实的【面试官面试】形式帮助你学习后端技术,其他系列博客请订阅专栏《后端训练营》


创作不易,不妨点赞、收藏、关注支持一下,各位的支持就是我创作的最大动力❤️

#大厂##大厂面试##Java##MySQL##MySQL面试#
Java Offer训练营 文章被收录于专栏

👉以贴近现实的【面试官面试】形式帮助你系统学习后端技术 👉成体系知识帮你在后端进阶,每一道问答助你怒怼大厂面试官,收获大厂offer 👉《后端训练营》包含Redis系列、MySQL系列、Kafka系列、ZooKeeper系列、JVM系列、多线程系列等等 👉制作不易,各位的支持是我创作的最大动力

全部评论
太强了
1 回复
分享
发布于 04-11 23:20 广东
支持支持
点赞 回复
分享
发布于 04-25 23:38 广东
联易融
校招火热招聘中
官网直投

相关推荐

2 7 评论
分享
牛客网
牛客企业服务