很基础的面试,这都没答上只能说面经刷少了。插入流程:编译器解析-> 优化器根据采样和统计涉及字段的cardinality确定是走索引还是全表扫描->写undo log,记录版本和回滚指针-> 如果不是唯一索引,记录到change buffer等待刷入磁盘,否则是从磁盘读入内存校验是否已存在->执行器拿到,行版本+1,写入redo log->执行器生成bin log, commit->两阶段提交prepare阶段redo刷盘,commit阶段bin log刷盘;因为是插入操作,事务结束以后可以删除undo log,否则更新和删除的话需要放到待清理列表判断是否上undo上一个版本还有事务在使用; 我起码刷面经遇到过四五个这样类似的问题,也不难,就是看你有没有下功夫去准备;
6 5

相关推荐

牛客网
牛客企业服务