写点什么

第九周作业 (作业二)

用户头像
Geek_83908e
关注
发布于: 2020 年 11 月 23 日

根据当周学习情况,完成一篇学习总结

这周主要学习了 Mysql 数据库基本原理、JVM 虚拟机架构原理、JVM 虚拟机垃圾回收以及 Java 代码优化技巧及原理等知识点,了解了这块的知识对写出高质量高性能的系统帮助很大。

Mysql 数据库

1、PrepareStatement 会预先提交带占位符的 SQL 到数据库进行预处理,提前生成执行计划,当给定占位符参数,真正执行 SQL 的时候,执行引擎可以直接执行,效率更好一点。同时 PrepareStatement 由于会提前将 sql 进行语法分析并生成执行计划,这样就可以防止 sql 注入导致威胁数据库安全情况发生。


2、字段索引采用 B+树的数据结构,由于 B+树和 B 树相比更加扁平,非叶子节点不存储真正数据使得磁盘 IO 次数少性能更优,叶子节点存储真正数据使得范围查找性能更高。


3、Mysql 事务,通过事务日志,存储内容为

LSN:一个按时间顺序分配的唯一事务记录日志序列号。

TransID:产生操作的事务 ID。

PageID:被修改的数据在磁盘上的位置。

PrevLSN:同一个事务产生的上一条日志记录的指针。

UNDO:取消本次操作的方法,按照此方法回滚。

REDO:重复本次操作的方法。

来实现事务性,如果执行失败,那么就会对每条执行了的语句执行 UNDO 操作


JVM 虚拟机架构原理

类文件从加载到执行的整个流程,类加载采用双亲委派模式,运行期数据区分为方法区、堆、栈区以及程序计数器等,垃圾回收采用相应的垃圾回收器。


方法调用流程图


Java 代码优化技巧及原理

学习了多线程、异步 IO、延迟写提前读等优化方式。对于系统性能问题的诊断,可以采用下面的工具

基本工具:JPS ,JSTAT,JMAP,JSTACK

集成工具: JConsole,JVisualVM


发布于: 2020 年 11 月 23 日阅读数: 24
用户头像

Geek_83908e

关注

还未添加个人签名 2019.04.28 加入

还未添加个人简介

评论

发布
暂无评论
第九周作业(作业二)