个人背景:3年Java后端开发
面试历时50分钟
项目拷打20分钟
假设数据量暴增,日数据量千万级别,项目如何优化
白板写一下项目某流程的伪代码 (面试官说我代码写的有问题,后面复盘应该是异常处理吧?)
写一下项目流程中用到的一条sql, 然后一转数据库八股文
msyql 的底层是B+树,B+ 树是什么?
事务是什么?
事务的ACID,各自是是什么展开说说?
一条sql 执行的过程,从客户端连接开始说起
慢SQL如何优化?
介绍项目中SQL优化是怎么做的?
jdbc 是什么?(平时只是用过,八股文没怎么背)
mybatis 是什么,和jdbc的关系?(寄,开始一通乱答)
mybatis plus 和 mybatis 是什么关系?
spring 中如何开启事务
现在有一个函数如下, 现在开启了事务,fun1 报错,fun2 不想一起回滚,有什么方法?
@Transactional public void addData(){ // 可能涉及数据库操作、文件操作等 fun1(data); / fun2(data); }
答案:开启一个异步线程 或者并在fun2上添加 @Transactional(propagation = Propagation.REQUIRES_NEW) 注解,表示开启一个新的独立事务
用过springboot 的注解有哪些?
总结:项目经历还是答的不太好,八股文大部分都答上来了,最后时间不够了,就没出题
这一个月面试被挂麻了,球球来个offer吧
#社招#