牛客669569576号 level
获赞
7
粉丝
0
关注
3
看过 TA
2
南京大学
2015
Java
IP属地:未知
暂未填写个人简介
私信
关注
2021-07-26 12:22
已编辑
南京大学 Java
老规矩,留下点面试题供后来人分享。      开始自我介绍下,这个不多说。后面就是问了我最近的一个项目经历,也并没有很深入,最无语的是最后问一句,关于这个项目你还有什么想补充的(捂脸)。   后面就是问一下Mysql的几个问题,ACID,实现原理是怎样的(这个我是不太懂,只能说说redo log/undo log之类的),最让我纳闷的一个问题是,当你往mysql表插入一个字段时会发生什么,我特么就不知道他想问啥,就答了下有没有做关联,或者有索引的话要进行索引数据的建立等等,他也不置可否。   后面,就没有问题了,估计是不是他就比较了解mysql这块,所以就问了这么几个,其他的也不问了。    ...
bennysfox:很基础的面试,这都没答上只能说面经刷少了。插入流程:编译器解析-> 优化器根据采样和统计涉及字段的cardinality确定是走索引还是全表扫描->写undo log,记录版本和回滚指针-> 如果不是唯一索引,记录到change buffer等待刷入磁盘,否则是从磁盘读入内存校验是否已存在->执行器拿到,行版本+1,写入redo log->执行器生成bin log, commit->两阶段提交prepare阶段redo刷盘,commit阶段bin log刷盘;因为是插入操作,事务结束以后可以删除undo log,否则更新和删除的话需要放到待清理列表判断是否上undo上一个版本还有事务在使用; 我起码刷面经遇到过四五个这样类似的问题,也不难,就是看你有没有下功夫去准备;
投递字节跳动等公司8个岗位
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务