阿里云暑期实习 Java一面

当时没有整理,今天记录两个比较有价值的问题。

1. 对数据库建立联合索引 (b, a),使用 select * from xx where a=1 会走索引吗:

首先,肯定是不走联合索引了,

其次,那会怎么样?

一直以为会“全表扫描”,面试官建议我去试一下。用MySQL测试后发现走的是“全索引扫描”,使用的是 ba 联合索引,但是因为我只建立了 ba 的索引,所以就直接走了 ba , 否则会按照索引顺序遍历所有索引树。

“全索引扫描”性能仅优于“全表扫描”,TYPE 显示“Index”,如果是“联合索引”,TYPE 会显示“Ref”,“主键或唯一索引”会显示“Const”。

2. HTTP3为什么要用 QUIC,如果仅是缩短时间,那建立 TCP 连接握手也并不会消耗多少时间:

· QUIC 在用户空间实现而非内核,可以快速部署最新版本,TCP 在内核中实现,实现困难

· QUIC 具有更高级别的加密 ,TCP 本身不做数据加密,依赖于 TLS

· QUIC 建立在传输层协议栈上,意味着可以随时切换传输协议

#阿里云# #面经# #Java# #阿里求职进展汇总#
全部评论
只有a,b列才会走索引,否则就是全表扫描吧
1 回复 分享
发布于 03-27 00:52 湖北
mark一下quic协议
1 回复 分享
发布于 03-16 10:36 江苏
是不是因为索引跳跃+索引下推呢
点赞 回复 分享
发布于 03-27 10:15 香港
这里测试时表中是只有ab两列吗?
点赞 回复 分享
发布于 03-24 16:52 江苏
m
点赞 回复 分享
发布于 03-17 21:29 山东
如果多个c,那where a=1是全表扫描
点赞 回复 分享
发布于 03-16 15:51 北京
“全索引扫描”,使用的是 ba 联合索引,即走 ba 的索引树这里是什么意思呀佬
点赞 回复 分享
发布于 03-13 23:30 湖北

相关推荐

评论
15
74
分享

创作者周榜

更多
牛客网
牛客企业服务