记一次简单的面试经历

记一次简单的面试经历

(关于数据库方面的 )
面试官: 说说inner join 和 left join 的区别吧
我答: 一个是左连接, 一个是内连接嘛, inner是取的交集 , left取的是左集加交集 , 已A ,和B
表为例 , 假如, A是属于B表的, 那么后面On相同条件下, 他们所查询出来的数量是相同的, 假如, A没被B包含 ,那么 相同条件下 , 左连接查询出来的结果集更大一些 .(我大概是这么说的 )

面试官 : 谈谈事务吧 ,你知道的事务有那些 ,平时你用的那种 ?
我答 :我知道有两种 ,一种是声明式事务控制 , 一种是编程式事务控制 ,我在项目中用的申明式事务控制 ,只需要在类上或者方法上加上@transaction注解即可 , 一般都在service层加在方法上,虽然加在类上比较省事,但是对数据库的开销比较大,对增删改操作的方法我们一般就会加上 , 对于查询操作的方法 ,一般我都没有加.

面试官 : 那么你觉得如果我只插入或修改一条数据有必要加上事务吗?
我答:(emmmmm酝酿了一会儿), 我觉得也有必要加吧 ,虽然你只是插入一条数据 ,万一有别的线程正在查询count总数量 ,就可能会造成幻读问题吧 , 然后吧啦吧啦解释了一些什么是幻读,但是解释的有误 +.+

面试官: 你刚说到幻读 ,那你说说数据库隔离级别 ,和可能造成的一些问题吧
我答 : 那我从大到小说吧 ,首先是串行化 ,解决所有问题,但是效率极低; 然后是可重复读,会存在幻读问题; 然后是读已提交, 和 读未提交.

面试官: 那你刚解释的幻读的两个事务是不是未提交读问题呢,
我答: 哦 ,对哦 ,我解释幻读解释错了,以前有演示过这个问题 ,太久了,记得不大清楚了,疯狂解释 = =

面试官: 可以可以 ;然后问了一些多线程方面和框架的相关的知识;下回再补充,手敲挺累的

你可能感兴趣的:(普通应届程序员,二流菜逼程序员)