2017.08.04爱可生电话面试笔记

来源:互联网 发布:手机淘宝2015旧版本5.5 编辑:程序博客网 时间:2024/06/03 13:25
A.自我介绍
B.针对简历提了几个问题:
    1.复制的方式有哪些,及其各自的优缺点:
我的回答是:复制的方式有statement、row、mixed三种格式
statement是基于SQL语句的,在日志文件中记录的是执行的SQL语句,优点是可查看,产生的日志占用空间少,缺点是特殊情况下比如SQL语句中有rand(),now()之类的变化的函数,会使得slave的数据与master数据不一致。row是基于行的变更的,在日志文件中记录每一行的数据改变,优点是在rand()、now()等特殊情况下依然可以保证主从的一致性,缺点是一个SQL语句可能会改变表中的很多条记录,所以row格式会产生很大的binlog日志,占用更多的存储空间。miexd格式是混合statement和row格式,一般情况下以statement格式进行复制,特殊情况下以row格式进行复制。
    2.gtid出现的原因,为什么要从基于position的主从复制转变为基于gtid的主从复制:
我的回答是:gtid即全局事务标识符,每个事务都和gtid一一对应,方便对事务的管理。之前基于position的主从复制在切换时change master to时需要指定主库当前的二进制日志文件和当前的position,而gtid不需要直到主库当前使用的二进制日志文件和position。
面试官说点到了但是没有答出核心,他说gtid出现的原因是主库故障的时候基于position的复制无法切换,而基于gtid的主从复制当主库故障的时候可以进行切换。(我不怎么明白。。)
    3.mysql 5.7相对mysql5.6复制方面有哪些改进:
我不会所以就没有直接回答我不知道。
后来微信问他,他说:5.6基于并行复制,5.7基于组提交并行复制(group commit)
    4.半同步的环境下一个事务如何进行:
我的回答是:首先一个事务在完成后,主库dump线程将日志中的事务的event发送到从库的IO线程,然后IO线程将事务的event放在relay log中,然后当任意一个从库接受到这个event就告知主库,主库就会commit事务。
面试官:大致答对了,但是有个点,是事务完成前,而不是事务完成后。
可能紧张了把所以zz了。。。。
大致如此,面试官还给我说让我尽量使用centos或者redhat,ubuntu在商业中很少用。其次面试官特别问到了数据库原理,问我们学校有没有开过相关课程,并说明了原理的重要性。


总结:
这次面试是我人生中的第一次面试,虽然是电话面试,但是也感受到面试官的和善,没想到最后说加微信的时候发现我们两个都在姜承尧大佬的IMG微信群里...虽然蛮紧张,但是自己面的还是不错的,基础掌握的还可以,期待8.8号上海的两轮爱可生的面试

给我一个平台,我能给你意想不到的满意。