写点什么

架构师训练营第 9 周学习总结

用户头像
菜青虫
关注
发布于: 2020 年 12 月 20 日
  • 数据库架构原理

  • 数据库架构

  • 连接器

  • 通常需要几百毫秒来创建连接,程序启动时一般会预先创建连接池

  • 语法分析器

  • 解析 SQL 语句构建抽象语法树

  • 语义分析与优化器

  • 对复杂嵌套的 SQL 进行语义等价转化,利用索引进一步进行优化

  • 执行引擎

  • MySQL 可以通过 explain 来查看使用的索引和处理行数

  • PrepareStatement 优势

  • 提前生成执行计划,效率会更高

  • 防止 SQL 注入攻击

  • 索引

  • 聚簇索引

  • 主键 ID 和记录行存储在同一个 B+树中

  • 非聚簇索引

  • B+树叶子节点存储的是主键,需要回表取得其他字段

  • 合理使用索引

  • 添加索引操作耗时较长(分钟级别),并且会阻塞 CRUD 操作

  • 删除不用的索引,避免不必要的增删开销

  • 使用更小的数据类型创建索引

  • 事务日志

  • 在修改聚簇索引上的记录前,先写事务日志

  • UNDO 日志:更新前的数据

  • REDO 日志:更新后的数据

  • JVM 虚拟机原理

  • JVM 组成构架

  • 类加载器

  • 运行期数据区

  • 执行引擎

  • 字节码文件

  • 热点代码会被 JIT 编译成机器码

  • 其他代码会解释执行

  • 类加载器

  • 低层次的类加载器不能覆盖高层次类加载器已经加载的类

  • 隔离加载类

  • 扩展加载源

  • 字节码加密

  • 线程工作内存

  • 线程操作内存变量时,需要通过线程独有的工作内存拷贝主内存变量副本来进行

  • 多线程运行多 CPU 核心时,可能存在并发访问问题,使用 volatile 修饰

  • JVM 垃圾回收

  • 回收方法

  • 清理

  • 压缩

  • 复制

  • 分代垃圾回收

  • 新生代:Eden 区 / From 区 / To 区

  • 老年代

  • JVM 垃圾回收器算法

  • 串行回收器

  • 并行回收器

  • 并发回收器 CMS

  • G1 回收器

  • JVM 性能诊断工具

  • JPS

  • 查看所有 Java 进程的 jvmid

  • JSTAT

  • 实时监控资源和性能,包括 heap size 和垃圾回收情况

  • JMAP

  • 输出所有内存对象

  • JSTACK

  • 查看线程堆栈信息

  • JConsole

  • JVisualVM

  • Java 代码优化

  • 多线程

  • 最佳线程数

  • [ 任务执行时间 / (任务执行时间 - IO 等待时间) ] * CPU 内核数

  • 线程安全代码

  • 方法局部变量:线程安全

  • 方法局部的对象引用:如果其他线程无法使用,线程安全

  • 对象成员变量 :堆中对象不是线程安全的

  • ThreadLocal

  • 内存泄露

  • 长生命周期对象

  • 静态容器

  • 缓存

  • 使用线程池和对象池

  • 使用合适的 JDK 容器类

  • 缩短对象生命周期

  • 使用 IO buffer 及 NIO

  • 优先使用组合代替继承

  • 合理使用单例模式

  • 案例 - 秒杀

  • 隔离秒杀系统

  • CDN 图片访问

  • 页面静态化

  • 基于 TT 的计数器阀门



用户头像

菜青虫

关注

还未添加个人签名 2017.11.20 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第 9 周学习总结