面试流程:首先做自我介绍,然后介绍最近做的项目,面试官问一些项目相关问题,接着问八股文,八股文如下:
1、说一下数据库的三大范式,建表应该注意什么
-
第一范式:每个列不可再分
-
第二范式:每列都依赖于主键列
-
第三范式:每列不可依赖除主键列的其他列
若出现,则需要分表,但不一定要求满足三大范式
2、mysql查询6月份的数据,最少使用三种方式
-
between
-
in
-
where
3、mysql常用函数
-
RANK()排序函数
-
DATE_FORMAT(date,format)日期函数,用于日期格式的转换
-
Lcase(str)把字符串所有字母转换为小写
-
Ucase(str)把字符串所有字转换为大写
-
Length(str)计算str长度
-
Char_length()查看字符串长度
4、怎么查看mysql索引是否生效
-
explain
5、mysql索引什么时候会失效,失效了怎么办
-
模糊查询的时候,第一个通配符使用的是%
-
使用or的时候可能会失效,如果or两边的字段都有索引才会走索引,如果一个字段上没有索引,那么另一个字段上的索引也会消失
-
在where当中索引列表参与了运算,索引会失效
-
在where当中索引使用了函数,索引失效
-
使用复合索引的时候,没有使用左侧的列查找,索引会失效
6、sql优化
-
尽量避免在where字句中使用!=或<>操作符,否则将引擎会放弃走索引而走全表扫描
-
尽量避免在where字句中对字段进行null判断,否则也会导致引擎放弃走索引而走全表扫描。可以用0代替判断,前提是保证字段不能为null
-
尽量避免在where字句中用or拼接,否则也会走全表扫描。可以通过union all拼接代替
-
尽量避免在where语句字句中对字段进行函数操作
-
尽量不使用like做搜索查询,若要提高效率,可以采用全文检索
-
尽量不使用in或者not in·查询,否则会导致全表扫描,可以用between代替in
7、Spring boot 有哪些注解
-
component:泛指各种组件
-
controller(控制层)、service(业务层)、repository(数据访问层)都可以称为component
-
Autowired 、Resource:都可以注入bean
-
Configuration:声明当前类为注解类
-
ComponentScan:对于Component进行扫描
-
Restcontroller:相当于controller和ResponseBody的组合,意味着,该controller的所有方法都加上了ResponseBody
-
PathVariable:用于接收路径参数
-
ResponseBody:允许返回值放到response内,而不是一个页面,通常返回json数据
-
Value:注入数据
-
Aspect声明一个切面
-
After在方法执行之后执行(方法上)
-
Before在方法执行之前执行(方法上)
-
Around在方法执行之前与之后执行(方法上)
-
PointCut 声明切点
8、restcontroller和controller的区别和使用场合
-
restcontroller注解相当于controller和responsebody两者合并起来的作用
9、SpringBoot 配置文件加载优先级
-
如果application.yml和application.properties文件同时存在,这个时候两个文件都有效,如果都配置了同一个属性,那么最终生效的是application.properties文件中的属性
10、ajax传递什么格式的数据,如何传递文件到后台
-
Ajax传递数据的格式有三种,分别是html、xml和json格式
11、redis有多少个库
-
16个库 0-15
12、如何清理redis中的数据
-
定期删除:指的是redis默认每隔100ms就随机抽取一些设置了过期时间的key,检查是否过期,如果过期就删除
-
内存淘汰机制:8种
1、noevication : 不会驱逐任何 key (默认)
2、allkeys-lru: 对所有的 key 使用 lru 算法进行删除
3、volatile-lru: 对所有的设置了过期时间的 key 进行 lru 算法进行删除
4、allkeys-random: 对所有 key 随机删除
5、volatile-random: 对所有设置了过期时间的 key 随机删除
6、volatile-ttl :马上删除要过期的 key
7、allkeys-lfu: 对所有 key 进行 lfu 算法进行删除
8、volatile-lfu: 对所有设置了过期时间的 key 使用 lfu 算法进行删除
13、Linux基本指令 (15个)
-
ls 显示文件或目录
-
mkdir 创建目录
-
cd 切换目录
-
touch 创建空文件
-
cat 查看文件内容
-
cp 拷贝
-
mv 移动或重命名
-
rm 删除文件
-
pwd 显示当前目录
-
ifconfig 查看网络情况
-
ping 测试网络连通
-
clear 清屏
-
reboot 重启
-
hostname 显示主机名
-
ps 显示瞬间进程状态 ps -aux