上海万得面试整理
本文最后更新于:2 年前
参加上海万得信息技术股份有限公司的面试整理。
经历
测试题
完成一个程序设计。已上传GitHub:
题目在仓库的readme.md文档
面试
连续使用腾讯会议参加了两场技术面试,第一场还是一个学长,表现不错;第二场是一个稍微年长一些的面试官,表现不好,这次比较抓基础,算法和框架原理一类的。
Java集合有哪些
Collection
接口和Map
接口是所有集合框架的父接口- Set 不重复元素
- List 有序可重复集合,索引访问
MySQL的调优方案
SQL调优
获取有性能问题的 SQL
通过慢查日志获取存在性能问题的 SQL;
优势
- 性能开销比较低,主要关注磁盘空间。主要性能开销在磁盘 IO 和存储日志所需要的磁盘空间。对于磁盘 IO 来说,由于写日志是顺序存储,IO开销基本上忽略不计。
- 日志记录所有符合条件的 SQL。包括查询语句、数据修改语句、已经回滚的 SQL。
实时获取存在性能问题的 SQL
通过information_schema库中的processlist表进行查看
数据库引擎调优
选择引擎
InnoDB(行锁):
行锁:仅支持一个事务操作数据库表的某一行数据,当一个事务拿到行锁,另一事物无法操作此行数据包括select
优点:粒度小、支持CRUD事务
缺点:获取锁和释放锁需要花费资源、容易发生死锁
共享锁(读):
允许多个事务共用一行数据,在修改表数据时不能使用此情况
排他锁(写,默认):
一个事务拿到行锁后,另一事务无法操作查询此行数据,直到提交或回滚释放锁。容易发生死锁
优化:
1.控制事务的大小不宜过大,否则会占用行锁时间过长,影响其他事务的效率
2.尽可能使用索引作为过滤条件,提升sql操作的效率,减少事务花费的时间
3.合理设计索引
4.业务允许的话,可以适当降低隔离级别
JVM的了解
线程和进程
数据库的索引
Nginx
Linux的使用经验
总结
项目没有问
参考
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!