1、说一下mysql的主从复制过程
具体的流程如下
-
首先master要开启binlog日志,记录所有的ddl和dml操作
-
然后通过网络把binlog日志发送给slave,由slave的io线程先写到relay log中继日志
补充:如果slave接收到master发送过来的binlog日志就直接执行重放到数据库中,由于重放的过程会比较久,这时候可能会导致io线程阻塞,所以relay log中继日志就是起到一个缓冲的作用
-
再由slave的执行线程读取relay log日志重放到数据库中
补充:
(1)binlog日志有三种模式:
row(默认):记录哪一行被修改了,具体修改了什么,如果遇到修改表结构或者操作大范围数据行的情况,会产生大量日志数据
statement:记录涉及修改到数据的sql,好处就是日志数据量少,但是在主从复制的情况,有可能从库复制过程过来的sql执行失败(因为环境信息可能不一样),导致主从数据不一致
mixed:就是上边两种的混合,当涉及修改的数据行比较少的时候会选择row,比较多且安全的时候选择statement
2、mysql有哪些日志文件及它们的作用是什么?
-
slow log慢sql日志
-
可以设置一个阈值收集慢sql
-
-
undo log回滚日志
-
一般用于回滚
-
-
redo重做日志
-
用来重启后恢复buffer pool中的数据
-
-
binlog二进制日志
-
一般用于事务提交和主从复制
-
-
relay log中继日志
-
一般用于主从复制
-
3、你们有做单元测试吗?怎么做单元测试的?
-
你们有做单元测试吗?
-
有的
-
-
怎么做单元测试的?
-
我们做的都不是太复杂和专业的单元测试
-
单个接口测试使用apifox/Yapi/swagger自己模拟请求来进行测试的
-
使用junit测试service或mapper
-
网硕互联帮助中心




评论前必须登录!
注册