27届-日常实习-虾皮DataInfra-二面
🕐面试时间:26.4.2-一个小时
💻面试岗位:后端开发
❓面试问题:
1、自我介绍
2、问了下代码评审项目,使用了那个大模型,怎么去做Code Review?
3、慢SQL优化,SQL优化的具体场景,怎么优化的?
4、回表是什么,什么时候会回表?
5、优化的数据表数据量有多大?了解过这个业务分表怎么分的吗?
6、如果按照年份分表,如何解决跨表查询的问题,比如说查询25年12月和26年1月的数据,如何跨表limit查询?
7、我提了下用手机号末位来分表,问为什么取模零到九分表,知道原因是啥吗?为什么要这么做?
8、有一张这种大表的问题,为了解决这个大表的问题,你从什么角度去考虑,分库分表大家都听过这个概念,但是为什么分库分表?怎么分库分表,你的考虑是什么?
9、刚刚说的是横向分表,纵向分表了解过吗?
10、Mysql的索引了解过吗,用的什么样的数据结构?
11、多线程访问数据库,如何保证数据库的安全性和一致性?
12、不使用Redis等其他中间件,如何防止库存超卖?答:update配合CAS
13、能在多线程里面直接用HashMap吗?
14、还用过Concurrent包下的其他工具吗?
15、SpringBoot怎么控制事务的呢?
16、一个类又两个方法,一个事务方法,一个非事务方法,非事务方法调用事务方法,事务是否还会生效?(这个当时没答上来,后来面试官提醒了事务是使用动态代理使用反射创建代理类进行操作,但是这个是this调用,所以这种情况事务是不生效的)
17、RESTfulAPI了解过吗?
18、POST接口插入数据的话,如何保证幂等?
19、代码判断题,判断字符串是否true\false;有序数组双指针求是否和为target
🙌面试感想:对分库分表还没深入了解,不仅仅要知道如何分库分表,也需要了解为什么这样做
#发面经攒人品#