思路
2021-08-01 18:38:45 1 举报
AI智能生成
java高级开发思维导图
作者其他创作
大纲/内容
IOC
AOP
Sploud cloud
设计模式
源码、设计模式
RabbitMq
组件、消息类型
消息组成(高可用)、主从复制
RocketMq
消息
ElasticSearch
基本概念
集群、使用场景、分布式锁
Zookeeper
Spring事务、分布式事务
DDD和中台
类加载
JVM组成
JVM对象创建及内存分配
垃圾收集器
JVM
垃圾回收器角度、初始化和最大堆内存大小相同
年轻代对象的增长速率
young gc 的频率和时间
每次young gc存活的对象和进入老年代的对象
Full gc的频率和时间
1、运行情况评估
1、jmap -heap
2、jstat
自带的工具
https://gceasy.io
2、工具
thread -n
arthas
mark word 8
class point:(开启指针压缩)4
数组长度 4
对象头
int、string = 4
boolen = 1
属性
占4
引用
填充
实例(不包含静态变量)
评估对象大小
循环远程调用,大数据批量查询,记载到内存中,循环调用
树层级大对象,导致频繁young gc
问题
3、具体
需求的预调优、运行时的卡顿调优
dump 工具
arthas或日志
OOM
调优方向
JVM调优
1-Mysql索引结构和Explain
2-Mysql事务、锁、MVCC、Buffer Pool
3、分表分库
1、建立自增主键
80%的sql走联合索引、其他另建索引
2、联合索引、尽量扩展索引
3、查询频率高,区分度高的
4、更新频繁、大类型字段不要建
5、基于慢sql
创建索引原则
1、explain和trace
覆盖索引
2、from之前的
like
in
小基数字段,全匹配
定时任务处理范围字段
联合索引
3、where条件
单路、双路
尽量在索引上排序
尽量符合最左匹配原则
先满足排序后分组
4、排序、分组
可以先查主键;避免查询字段太多,不回表
5、分页
有 索引的情况下 NLJ 算法比 BNL算法性能更高
关联字段加索引
in和exist优化也是一个道理
小表驱动大表
避免多表查询
6、join
sql
Sql优化(一条sql出发)
Mysql
难点、电商秒杀
数据结构、NIO
持久化、集群
优化设计
Redis
1-JMM和volatile
2、线程池、AQS、CAS、Synchronized
并发
思路
0 条评论
回复 删除
下一页