第九周总结
首先讲了数据库的基本原理。分析和讲解了一个SQL的完整过程,从管理连接的连接器,到收到SQL后的语法分析器,语义分析和优化器,最后是执行时的执行计划。其中详细讲解了数据库的索引(聚簇索引和非聚簇索引),索引的数据结构和原理,以及索引的合理使用。最后带我们了解了数据库事务ACID特性和事务的执行过程。
接下来就是和Java关系比较密切的JVM虚拟机和Java代码优化。要知道该如何优化Java代码,首先要了解Java代码的执行,也就是要了解JVM。从Java代码到字节码的编译过程,到字节码的执行流程,其中涉及到类加载器的双亲委托模型、自定义类加载器、堆栈、方法区和程序计数器、Java线程、线程工作内存和volatile。单独用一节课的时间讲了JVM的垃圾回收,详细讲解了垃圾回收的机制和过程,也说明了垃圾回收的重要性。
最后就是Java代码的优化和技巧。多线程、线程安全以及内存泄漏,还有之前讲过的I/O阻塞等。
实际案例,有限的时间内,在现有系统上实现秒杀活动。提到几个系统性能优化点:
采用更轻量/快速的服务器
前端优化的自动化
架设CDN
反向代理加速页面
海量数据的透明垂直拆分
评论