Mysql(六)MVCC机制


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

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


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

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


分页查询平常我们的分页查询一般都是使用以下sql实现:EXPLAINSELECT*FROMemployeesorderbynamelimit10000,10;这里看似是从表中查询10条记录,实际上是在表中查询了10010条记录,将10000条记录丢弃所得到的结果,所以我们经常会发现分页查询越到后面查

Mysql(三)索引优化实战


实战前的准备创建测试表CREATETABLE`employees`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(24)NOTNULLDEFAULT''COMMENT'姓名',`age`int(11)NOTNULLDEFAULT'0'COMMENT'年

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


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

Mysql(一)Mysql底层数据结构


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

JVM(七)JVM调优实战


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

JVM(六)JVM调优命令


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

JVM(五)G1&ZGC&安全点


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

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


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