190516-常见面试题

jvm 相关面试

mysql

mysql分页优化

利用表的覆盖索引来加速分页查询
我们都知道,利用了索引查询的语句中如果只包含了那个索引列(覆盖索引),那么这种情况会查询很快。

因为利用索引查找有优化算法,且数据就在查询索引上面,不用再去找相关的数据地址了,这样节省了很多时间。另外Mysql中也有相关的索引缓存,在并发高的时候利用缓存就效果更好了。

在我们的例子中,我们知道id字段是主键,自然就包含了默认的主键索引。现在让我们看看利用覆盖索引的查询效果如何:

这次我们之间查询最后一页的数据(利用覆盖索引,只包含id列),如下:
select id from product limit 866613, 20 0.2秒
相对于查询了所有列的37.44秒,提升了大概100多倍的速度

那么如果我们也要查询所有列,有两种方法,一种是id>=的形式,另一种就是利用join,看下实际情况:

SELECT * FROM product WHERE ID > =(select id from product limit 866613, 1) limit 20
查询时间为0.2秒,简直是一个质的飞跃啊,哈哈

另一种写法
SELECT * FROM product a JOIN (select id from product limit 866613, 20) b ON a.ID = b.id

springboot 自动装配原理

操作系统相关面试题

操作系统常见面试题总结

网络系统相关面试题

数据库系统面试题

面试反馈

https://blog.csdn.net/nbawj/article/details/89083752

进程读取数据的两个阶段

等待内核数据准备
将数据从内核拷贝到进程中
所以在等待IO的操作中,CPU不会分配时间片给用户线程

https://mp.weixin.qq.com/s?__biz=MzU5NTAzNjM0Mw==&mid=2247484583&idx=3&sn=3c26c0953a3fc2d1ffdc790f86e154ae&chksm=fe79557fc90edc69c08d872075d89f30e8ef2ad9b073947886749be4088744c0fa511f0c300a&scene=21#wechat_redirect

https://blog.csdn.net/javageektech/article/details/101443127

比较 Java 线程与操作系统线程,可以发现 Java 线程状态没有可运行状态。也就是说 Java 线程 RUNNABLE 状态包括了操作系统的可运行状态与运行状态。一个处于 RUNNABLE 状态 Java 线程,在操作系统层面状态可能为可运行状态,正在等待系统分配 CPU 使用权。

#
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×