Java工程师
约 412 字大约 1 分钟
Java工程师
岗位年限:
应届
面试时间:
2023年11月14日14.30点
面试方式:
线下
面试问题:
序号 | 问题 | 解答 | 备注 |
---|---|---|---|
1 | stream流分组语法 | 忘了 | |
2 | mysql优化 | 表的设计优化;sql语句优化;主从复制,读写分离; | |
3 | 索引失效情况 | ①:违反最左前缀法则 ②:使用范围查询(如BETWEEN ... AND ,比较运算符)会导致范围查询右边的列上的索引失效 ③:不要在索引列上进行运算操作,索引将失效 ④:字符串不加单引号,造成索引失效。(类型转换) ⑤:以%开头的ike模糊查询,索引失效 ⑥:在索引列上使用 IS NULL 或 IS NOT NULL操作。 ⑦:在索引字段上使用not,<>,!=。 ⑧:or 语句前后没有同时使用索引。当 or 左右查询字段只有一个是索引,该索引失效,只有左右查询字段均为索引时,才会生效; ⑨:当 MySQL 觉得全表扫描更快时(数据少) | |
4 | 如何避免 | 1.like语句优化 不要在关键字前面加%,使用union all 来替代or条件 使用or关键字无法使用索引,会导致全表扫描3.不要是用不等于符号(!=或<>) 4.不要使用in或not in如果in的条件是连续的,用between … and来替代in 用exists替代in,用not exists替代not in (not in是最低效的) 用left join 替代 in 不要用is null,用列名=常量来代替 不要在where子句"="左边进行运算 多列索引,最左前缀原则 | |
5 | |||
6 | |||
7 | |||
8 | |||
13 | |||
9 | |||
10 | |||
11 | |||
12 |