第九周作业 (作业二)
根据当周学习情况,完成一篇学习总结
这周主要学习了 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
版权声明: 本文为 InfoQ 作者【Geek_83908e】的原创文章。
原文链接:【http://xie.infoq.cn/article/6af17f48abeae1119dab642a5】。文章转载请联系作者。
评论