【面试整理】 2年经验JAVA 最近面试问题总结【持续更新中】

记录学弟的最近几次面试经验

 

面试公司性质:多个 

 

TItle:不定

 

背景:计算机专业19届毕业生,实习+工作实际2年以上

 

薪资要求:13K+

 

Q1:说下mysql中having

A:引入having的原因:where无法与聚合函数一起使用,通常与group by 一起使用,用于再次过滤结果集;where 用于过滤原始数据,而having可以过滤经where、group by 筛选后的结果;where 不支持聚合函数,having支持。

 

Q2:说下 mysql的循环

A:mysql 的循环与一般的java循环类似,声明变量、游标等,以begin-end标识开始和结束,也支持使用continue、break关键字。

 

Q3:说下mysql中的分页

A:分页一般需要两个传入值(页码 & 每页条数),使用limit关键字,在结果中查询(页码-1)*每页条数~页码*每页条数的数据,返回给前端。

 

Q4:说下 mysql中的关键字以及函数

A:关键字 略

      常用的函数

count(*) 返回结果集的行数
sum() 返回结果的算术和
max()/min() 返回最大/最小值
substr() 截取字符串
decode() 类似三目运算符,为空则A、非空则B(oracle才有)
nvl() 如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。

 

 

Q5:说下mysql中多表联查

A:一般使用left join、right join、join、union进行多表联查,具体情况略;

 

Q6:说下mysql查看执行效率

A:一般可以使用 explain  进行查看,结果集中:

id 这是SELECT的查询序列号
select_type select_type就是select的类型
table 显示这一行的数据是关于哪张表的
type 这列最重要,显示了连接使用了哪种类别,有无使用索引,是使用Explain命令分析性能瓶颈的关键项之一
possible_keys 列指出MySQL能使用哪个索引在该表中找到行
key 显示MySQL实际决定使用的键(索引)。如果没有选择索引,键是NULL
key_len 显示MySQL决定使用的键长度。如果键是NULL,则长度为NULL。使用的索引的长度。在不损失精确性的情况下,长度越短越好
ref 显示使用哪个列或常数与key一起从表中选择行
rows 显示MySQL认为它执行查询时必须检查的行数
Extra 包含MySQL解决查询的详细信息,也是关键参考项之一

 

Q7:说下mysql中的索引原理

A:实现是通过b+树去实现的,本质是通过缩小搜索范围,并将无序的事件变为有序事件,来提高查询效率。建立索引比较慢,索引建立完成后则查询效率极大地提升。一言蔽之:索引是牺牲硬盘空间,建立一定的数据结构,使查询的范围减小,从而提升查询的效率。

 

Q8:说下mysql中的优化

A:常用语句级优化手段:mysql的最左匹配、oralce的最右;使用limit关键字;使用join代替in;

表级优化手段:建立索引;大数据量表分表并使用union合并;多列表拆分并使用join关联;

库级优化手段:建立主从库;热/冷数据分库;历史数据分库;缓存库(redis);

 

Q9:说下mysql中的事务

A:事务是必须满足4个条件(ACID)::原子性(Atomicity&#

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值