春/秋招指南之“性能调优”:MySQL+Tomcat+JVM,看完还怕面试官的轰炸?
春/秋招指南之“性能调优”:MySQL+Tomcat+JVM,看完还怕面试官的轰炸?
01 MySQL性能调优
1.1 MySQL性能调优问题有哪些?怎么学?
关于这个,给大家看一份学习大纲(xmind)文件,每一个分支里面会有详细的介绍。
这里都是以图片形式展示介绍,有整理完整的资源包【性能调优笔记(MySQL+Tomcat+JVM)】
1.2 关于MySQL,面试官会问哪些问题?
- 第一个:MySQ性能优化最佳实践21个(有具体的解释)你知道哪些?
-
为查询缓存优化你的查询
-
EXPLAIN你的SELECT查询
-
当只要一行数据时使用LIMIT 1
-
为搜索字段建索引
-
在Join表的时候使用相当类型的例,并将其索引
-
千万不要 ORDER BY RAND()
-
避免 SELECT *
-
永远为每张表设置一个 ID
-
使用 ENUM 而不是 VARCHAR
-
从 PROCEDURE ANALYSE() 取得建议
-
尽可能的使用 NOT NULL
-
Prepared Statements
-
无缓冲的查询
-
把 IP 地址存成 UNSIGNED INT
-
固定长度的表会更快
-
垂直分割
-
拆分大的 DELETE 或 INSERT 语句
-
越小的列会越快
-
选择正确的存储引擎
-
使用一个对象关系映射器(Object Relational Mapper)
-
小心“永久链接”
篇幅有点长,整理成了一个PDF文档:
- 第二个:来看下MySQL的高频20问(附带详细解答,整理成册)
-
事务四大特性(ACID)原子性、一致性、隔离性、持久性?
-
事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?
-
MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?
-
MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景?
-
查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序?
-
什么是临时表,临时表什么时候删除?
-
MySQL B+Tree索引和Hash索引的区别?
-
sql查询语句确定创建哪种类型的索引?如何优化查询?
-
聚集索引和非聚集索引区别?
-
有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?
-
非关系型数据库和关系型数据库区别,优势比较?
-
数据库三范式,根据某个场景设计数据表?
-
数据库的读写分离、主从复制,主从复制分析的 7 个问题?
-
使用explain优化sql和索引?
-
MySQL慢查询怎么解决?
-
什么是 内连接、外连接、交叉连接、笛卡尔积等?
-
mysql都有什么锁,死锁判定原理和具体场景,死锁怎么解决?
-
varchar和char的使用场景?
-
mysql 高并发环境解决方案?
-
数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)?
1.3 MySQL性能调优笔记分享
- 《MySQL性能调优与架构设计--全册(PDF)》
本书分为3个部分,第一部分是基础篇,第二部分是重点之重性能调优篇,第三部分是架构设计篇
(1)目录简介
(2)详情内容
- 《重学MySQL:从入门到精通(PDF)》
本书包括MySQL的安装与配置、数据库的创建、数据表的创建、数据类型和运算符、MySQL函数、查询数据、数据表的操作(插入、更新与删除数据)、索引、存储过程和函数、视图、触发器、用户管理、数据备份与恢复、日志以及性能优化等等。本书注重实战操作,帮助读者循序渐进的掌握MySQL的各项技术。需要重学一下MySQL,建议可以看看这个
02 Tomcat性能调优
2.1 Tomcat性能调优面试必备题(附带详细解答)你能答多少?
-
你怎样给 tomcat 去调优?
-
如何加大 tomcat 连接数
-
tomcat 中如何禁止列目录下的文件
-
怎样加大 tomcat 的内存
-
Tomcat 有几种部署方式
-
Tomcat 的优化经验
-
Tomcat 的缺省端口是多少,怎么修改?
-
tomcat 有哪几种 Connector 运行模式( 优化) ?
-
Tomcat 有几种部署方式?
-
tomcat 容器是如何创建 servlet 类实例?用到了什么原理?
-
tomcat 如何优化?
-
内存调优
-
垃圾回收策略调优
-
添加 JMS 远程监控
-
专业点的分析工具有
-
关于 Tomcat 的 的 session 数目
-
监视 Tomcat 的内存使用情况
-
打印类的加载情况及对象的回收情况
-
Tomcat 一个请求的完整过程
-
Tomcat 工作模式?
详细解答如下:
2.2 Tomcat学习笔记分享
-
《深入剖析Tomcat(中文版)(PDF)》
-
第1章:本书从介绍一个简单的HTTP服务器开始。为了建立一个可以运行的HTTP服务器,你需要了解java.net包下Socket类和ServerSocket类的内部运行机制。该章有详细的背景信息介绍,使你可以理解该章中应用程序的运行机制。
-
第2章:阐明一个简单的servlet容器是如何工作的。此章有两个与servlet容器有关的应用程序员,可以服务于静态资源的请求和简单servlet的请求。。
-
第15章:说明如何通过Digester组件来对Web应用程序进行配置,Digester是Apacbe软件基金会的一个开源项目,即使你对这个不熟悉也没关系,该章会简要介绍Digester库,说明如何使用该库来搞XML。
-
第16章:对Tomcat中的关闭钩子进行说明,不论用户如何关闭Tomcat(即通过发送关闭命令,或是突然直接关闭控制台),通过使用关闭钩子,Tomcat总是可以执行一些清理工作。
-
第17章:对使用批处理文件和Shell脚本来启动和关闭Tomcat进行说明。
-
第18章:对部署组件进行说明,该组件负责部署和安装web应用程序。
-
Servlet对一个特殊接口(ContainerServlet)进行说明。使用该接口,Servlet对象可以访问Catalina中的内部对象,此外,该章会对用来管理已部署应用程序的Manager应用程序进行说明
-
第20章:对JMX进行说明,并阐述Tomcat是如何为其内部对象创建MBean,并使用这些内部对象可托管的。
03 JVM性能调优
3.1 JVM和性能调优问题学习大纲(xmind)
3.2 JVM性能调优面试相关问题(附解析)
-
Java 类加载过程?
-
描述一下 JVM 加载 Class 文件的原理机制?
-
Java 内存分配。
-
GC 是什么? 为什么要有 GC?
-
简述 Java 垃圾回收机制。
-
如何判断一个对象是否存活?(或者 GC 对象的判定方法)
-
垃圾回收的优点和原理。并考虑 2 种回收机制
-
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
-
Java 中会存在内存泄漏吗,请简单描述。
-
深拷贝和浅拷贝。
-
System.gc() 和 Runtime.gc() 会做什么事情?
-
finalize() 方法什么时候被调用?析构函数 (finalization) 的目的是什么?
-
如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?
-
什么是分布式垃圾回收(DGC)?它是如何工作的?
-
串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
-
在 Java 中,对象什么时候可以被垃圾回收?
-
简述 Java 内存分配与回收策率以及 Minor GC 和 MajorGC
-
JVM 的永久代中会发生垃圾回收么?
-
Java 中垃圾收集的方法有哪些?
-
什么是类加载器,类加载器有哪些?
-
类加载器双亲委派模型机制?
3.3 JVM性能调优笔记分享
- 《JVM调优总结(PDF)》
(1)目录
(2)内容详解
关于“性能调优”:MySQL+Tomcat+JVM,我要给大家分享学习的就这么多,不知道这些面试常备问题你都能答得上来不?不会也没关系,可以找小编分享完整的原件(题目+答案解析)
还有这些关于“性能调优”的学习笔记,这些学习路线以及书籍笔记之类的,若是你还没有,也可以找小编来免费分享下载,请注意:戳此--获取码--牛客-春秋招指南之“性能调优”:MySQL+Tomcat+JVM
长期分享Java面试、面经、学习、架构笔记