分类 /

性能调优14

Mysql(六)MVCC机制

Mysql在可重复读隔离级别下如何保证事务较高的隔离性,在上一篇笔记中有提到是通过MVCC(Multi-VersionConcurrencyControl)机制实现的,使用这样的机制,可以在对一行数据的读和写时,不需要通过加锁互斥的方式来保证隔离性,...

Mysql(五)事务隔离级别与锁机制

概述我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机...

Mysql(四)分页&Join&Exist&count.md

分页查询平常我们的分页查询一般都是使用以下sql实现:EXPLAINSELECT*FROMemployeesorderbynamelimit10000,10;这里看似是从表中查询10条记录,实际上是在表中查询了10010条记录,将10000条记录丢弃...

Mysql(二)Explain详解和索引最佳实践

Explain工具介绍使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈。在select语句之前增加explain关键字,MySQL会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL注意:...

Mysql(一)Mysql底层数据结构

索引底层数据结构mysql底层有两种数据结构,B+Tree和HashB+TreeB+树的数据结构已在文章B+树详细说明,mysql默认索引使用就是B+Tree,并且在叶子结点做了双向指针的优化mysql默认设置每个结点的大小为16kb,通过以下sql...

JVM(七)JVM调优实战

使用AlibabaArthas(阿尔萨斯)官方文档GC日志详解对于java应用我们可以通过一些配置把程序运行过程中的gc日志全部打印出来,然后分析gc日志得到关键性指标,分析GC原因,调优JVM参数。打印GC日志方法,在JVM参数里增加参数,%t代表...

JVM(六)JVM调优命令

事先启动一个web应用程序,用jps查看其进程id,接着用各种jdk自带命令优化应用jps:查看java进程PSC:\Users\liaozijian>jps54888jar50772Jpsjmap:查看内存信息,实例个数以及占用内存大小#jm...

JVM(五)G1&ZGC&安全点

G1收集器(-XX:UseG1GC)G1(Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器.以极高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征。G1将Java堆划分为多个大小相等的独立区域(...

JVM(四)垃圾收集算法与垃圾收集器

垃圾收集算法垃圾收集算法共分为4种:复制算法、标记清除算法,标记整理算法,分代收集理论。复制算法将内存分为大小相同的两块,每次使用其中的一块。当这一块的内存使用完后,就将还存活的对象复制到另一块去,然后再把使用的空间一次清理掉。这样就使每次的内存回收...

JVM(三)JVM对象创建与内存分配机制

对象的创建1.类加载检查​虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。2.分配内存​在类加载检查通过后...

JVM(二)JVM内存模型

Java虚拟机的数据区域JVM内存参数设置-Xss:每个线程的栈大小,默认1m-Xms:初始堆大小,默认物理内存的1/64-Xmx:最大堆大小,默认物理内存的1/4-Xmn:新生代大小-XX:NewSize:设置新生代初始大小-XX:NewRatio...

JVM(一)类加载机制

Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制类加载的时机一个类从被加载到虚拟机内存中开始,到卸载出内存为止,一共会经历七个阶段...