前两天有个朋友去某厂面试,开场还是挺顺利的,没过多久却被调优问成凉凉了。
附面试思维导图:
文章图片
文章图片
【java|阿里力荐(这本Java性能调优实战,MySQL+JVM+Tomcat问题迎刃而解)】我心想,快要到7月半了,很快又是秋招大军来临了,是不是也有很多朋友同样在JAVA性能调优这一块掌握的不够呢?所以今天来写这篇文章,就是想给大家分享一份阿里P8架构师手敲20W字的调优实战笔记,另外尤其对于MySQL、Tomcat、JVM这三个特殊对待一下,看看我为其手绘相应的思维脑图以及面试相关的高频真题及答案。
先来看看Java性能调优实战 由于篇幅太多,直接来个总目录康康,从下面的目录大致上可以知道详情的内容包括哪些...
从目录就可以知道内容实在是太多了,我就不很详细的去解释了,开篇就说了想把这份阿里P8架构师手敲20W字的调优实战笔记分享给大家。
文章图片
文章图片
文章图片
再来看下里边详细的内容
- Java编程性能调优
文章图片
Java编程性能调优
- 多线程性能调优
文章图片
多线程性能调优
- JVM性能监测及调优
文章图片
JVM性能监测及调优
- 设计模式调优
文章图片
设计模式调优
- MySQL性能调优
文章图片
MySQL性能调优
- 实战演练场
文章图片
实战演练场
MySQL的手绘思维脑图+面试
- MySQL手绘思维脑图
文章图片
MySQL手绘思维脑图
- MySQL面试(阿里P8级,测试一下自己的水平)
- 说一下 MySQL 执行一条查询语句的内部执行过程?
- MySQL 提示“不存在此列”是执行到哪个节点报出的?
- MySQL 查询缓存的功能有何优缺点?
- 如何关闭 MySQL 的查询缓存功能?
- MySQL 的常用引擎都有哪些?
- MySQL 可以针对表级别设置数据库引擎吗?怎么设置?
- 常用的存储引擎 InnoDB 和 MyISAM 有什么区别?
- InnoDB 有哪些特性?
- 一张自增表中有三条数据,删除了两条数据之后重启数据库,再新增一条数据,此时这条数据的 ID 是几?
- MySQL 中什么情况会导致自增主键不能连续?
- InnoDB 中自增主键能不能被持久化?
- 什么是独立表空间和共享表空间?它们的区别是什么?
- 如何设置独立表空间?
- 如何进行表空间收缩?
- 说一下重建表的执行流程?
- 表的结构信息存在哪里?
- 什么是覆盖索引?
- 如果把一个 InnoDB 表的主键删掉,是不是就没有主键,就没办法进行回表查询了?
- 执行一个 update 语句以后,我再去执行 hexdump 命令直接查看 ibd 文件内容,为什么没有看到数据有改变呢?
- 内存表和临时表有什么区别?
- 并发事务会带来哪些问题?
- 什么是脏读和幻读?
- 为什么会出现幻读?幻读会带来什么问题?
- 如何避免幻读?
- 如何查看 MySQL 的空闲连接?
- MySQL 中的字符串类型都有哪些?
- VARCHAR 和 CHAR 的区别是什么?分别适用的场景有哪些?
- MySQL 存储金额应该使用哪种数据类型?为什么?
- limit 3,2 的含义是什么?
- now() 和 current_date() 有什么区别?
- 为什么 InnoDB 不把总条数记录下来,查询的时候直接返回呢?
- 能否使用 show table status 中的表行数作为表的总行数直接使用?为什么?
- 以下哪个 SQL 的查询性能最高?
- 索引分别有哪些优点和缺点?
- 以下 SQL 有什么问题?该如何优化?
- 为什么 MySQL 官方建议使用自增主键作为表的主键?
- 自增主键有哪些优缺点?
- 索引有几种类型?分别如何创建?
- 主索引和唯一索引有什么区别?
- 在 InnDB 中主键索引为什么比普通索引的查询性能高?
- 什么叫回表查询?
- 10.如何查询一张表的所有索引?
- MySQL 最多可以创建多少个索引列?
- 以下 like 查询会使用索引的是哪一个选项?为什么?
- 如何让 like %abc 走索引查询?
- MySQL 联合索引应该注意什么?
- 联合索引的作用是什么?
- 什么是最左匹配原则?它的生效原则有哪些?
- 列值为 NULL 时,查询会使用到索引吗?
- 以下语句会走索引么?
- 能否给手机号的前 6 位创建索引?如何创建?
- 什么是前缀索引?
- 为什么要用前缀索引?
- 什么情况下适合使用前缀索引?
- 什么是页?
- 索引的常见存储算法有哪些?
- InnoDB 为什么要使用 B+ 树,而不是 B 树、Hash、红黑树或二叉树?
- 为什么 InnoDB 要使用 B+ 树来存储索引?
- 唯一索引和普通索引哪个性能更好?
- 优化器选择查询索引的影响因素有哪些?
- MySQL 是如何判断索引扫描行数的多少?
- MySQL 是如何得到索引基数的?它准确吗?
- 什么是锁?MySQL 中提供了几类锁?
- 常见的死锁案例有哪些?
- 如何处理死锁?
- 如何查看死锁?
- 如何避免死锁?
- InnoDB 默认是如何对待死锁的?
- 如何开启死锁检测?
- 什么是全局锁?它的应用场景有哪些?
- 什么是共享锁?
- 什么是排它锁?
- 使用全局锁会导致什么问题?
- 如何处理逻辑备份时,整个数据库不能插入的情况?
- 如何设置数据库为全局只读锁?
- 除了 FTWRL 可以设置数据库只读外,还有什么别的方法?
- FTWRL 和 set global readonly=true 有什么区别?
- 如何实现表锁?
- 悲观锁和乐观锁有什么区别?
- 乐观锁有什么优点和缺点?
- InnoDB 存储引擎有几种锁算法?
- MySQL 有哪些重要的日志文件?
- redo log 和 binlog 有什么区别?
- 什么是 crash-safe?
- 什么是脏页和干净页?
- 什么情况下会引发 MySQL 刷脏页(flush)的操作?
- MySQL 刷脏页的速度很慢可能是什么原因?
- 如何控制 MySQL 只刷新当前脏页?
- MySQL 的 WAL 技术是解决什么问题的?
- 为什么有时候会感觉 MySQL 偶尔卡一下?
- redo log 和 binlog 是怎么关联的?
- MySQL 怎么知道 binlog 是完整的?
- MySQL 中可不可以只要 binlog,不要 redo log?
- MySQL 中可不可以只要 redo log,不要 binlog?
- 为什么 binlog cache 是每个线程自己维护的,而 redo log buffer 是全局共用的?
- 事务执行期间,还未提交,如果发生 crash,redo log 丢失,会导致主备不一致呢?
- 在 MySQL 中用什么机制来优化随机读/写磁盘对 IO 的消耗?
- 有没有办法把 MySQL 的数据恢复到过去某个指定的时间节点?怎么恢复?
- MySQL命令和内置函数篇
- 如何用命令行方式连接 MySQL 数据库?
- 关于命令 mysql -h 127.0.0.1 -uroot -P 3307 -p3307 以下说法错误的是?
- 如何创建用户?并给用户授权?
- 如何修改 MySQL 密码?
- 如何使用 SQL 创建数据库,并设置数据库的编码格式?
- 如何修改数据库、表的编码格式?
- 如何使用 SQL 创建表?
- 在 MySQL 命令行中如何查看表结构信息?
- 如何使用 SQL 查看已知表的建表脚本?
- 如何使用 SQL 语句更新表结构?
- MySQL 有哪些删除方式?有什么区别?
- 如何开启和关闭 MySQL 服务?
- 如何查询当前 MySQL 安装的版本号?
- 如何查看某张表的存储引擎?
- 如何查看当前数据库增删改查的执行次数统计?
- 如何查询线程连接数?
- 如何查看 MySQL 的最大连接数?能不能修改?怎么修改?
- CHAR_LENGTH 和 LENGTH 有什么区别?
- UNION 和 UNION ALL 的用途是什么?有什么区别?
- 以下关于 WHERE 和 HAVING 说法正确的是?
- MySQL 性能指标都有哪些?如何得到这些指标?
- 什么是慢查询?
- 如何开启慢查询日志?
- 如何定位慢查询?
- MySQL 的优化手段都有哪些?
- MySQL 常见读写分离方案有哪些?
- 介绍一下 Sharding-JDBC 的功能和执行流程?
- 什么是 MySQL 多实例?如何配置 MySQL 多实例?
- 怎样保证确保备库无延迟?
文章图片
MySQL阿里P8面试答案解析
Java虚拟机-JVM手绘思维脑图+面试
- JVM手绘思维脑图
文章图片
JVM手绘思维脑图
- 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 中垃圾收集的方法有哪些?
- 什么是类加载器,类加载器有哪些?
文章图片
JVM面试答案解析
Tomcat调优
- Tomcat调优面试问题
- 你怎样给 tomcat 去调优?
- 如何加大 tomcat 连接数?
- tomcat 中如何禁止列目录下的文件?
- 怎样加大 tomcat 的内存?
- Tomcat 有几种部署方式?
- Tomcat 的优化经验?
- ... ...
文章图片
Tomcat调优面试问题答案解析
- Tomcat架构解析文档
文章图片
Tomcat架构解析文档
文章图片
Tomcat架构解析文档
最后申明 全文提及的JAVA性能调优实战+MySQL面试-手绘思维脑图+JVM手绘脑图-面试+Tomcat面试-架构解析文档,如果你觉得自己有必要再好好学习一下调优去应对秋招,本文可以作为参考!
推荐阅读
- 面试|MySQL再发一弹,别再说不会了
- 面试|阿里言(出乎意料,“字节跳动”居然是这么做数据迁移的)
- java|纯 Java 撸个后台管理系统,这框架用起来贼好
- java|阿里大数据面试题集合(Hadoop+HBase+Spark+Zookeeper)
- tomcat|Tomcat目录介绍&Session持久化
- 面试|PHP 基础知识
- Java|4000 字详解TCP超时与重传,看完没收获算我输
- spring|SpringCloud微服务全家桶
- 图分析的22种算法与图形理解