![](https://img-blog.csdnimg.cn/db5c58f716754948a8b7434b6e09c006.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
性能调优jvm、mysql、tomcat
文章平均质量分 88
本专栏详细介绍jvm、mysql、tomcat性能调优及底层原理!
山鸟与鱼!
既然选择了这条路,就尽力做到最好!
展开
-
JVM垃圾回收器-:G1、ZGC
上篇文章介绍了部分垃圾收集器,这篇文章再来补充介绍G1跟ZGC两种功能更加强大的垃圾收集器。原创 2023-08-14 21:07:51 · 161 阅读 · 0 评论 -
JVM垃圾回收器-:Serial、Parallel、ParNew、CMS
JVM的垃圾回收器有很多种,因为JVM在发展过程中始终没有一种垃圾收集器能够完美的满足开发中各种情况,这么多垃圾回收器也是不断完善与不断进步的过程。垃圾收集算法在了解垃圾回收器之前,我们先来了解一下垃圾收集算法吧。分代收集理论当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。原创 2023-08-14 20:28:14 · 429 阅读 · 0 评论 -
MySQL8.0新特性及全局优化
从上图可以看出SQL及索引的优化效果是最好的,而且成本最低,所以工作中我们要在这块花更多时间。配置文件全局参数设置MySQL能够暂存的连接数量。如果MySQL的连接数达到max_connections时,新的请求将会被存在堆栈中,等待某一连接释放资源,该堆栈数量即back_log,如果等待连接的数量超过back_log,将被拒绝。指的是app应用通过jdbc连接mysql进行操作完毕后,空闲300秒后断开,默认是28800,单位秒,即8个小时。原创 2023-08-05 01:27:32 · 330 阅读 · 1 评论 -
MySQL的MVCC及BufferPool缓存池剖析
MVCC机制的实现就是通过read-view机制与undo版本链比对机制,使得不同的事务会根据数据版本链对比规则读取同一条数据在版本链上的不同版本数据。原创 2023-08-05 01:05:50 · 60 阅读 · 1 评论 -
MySQL中InnoDB存储引擎底层原理及日志机制剖析
我们在写sql语句时经常会用到事务,那么有没有想过事务执行失败后的回滚是怎么实现的呢?或者说底层是什么样的机制来实现的?接下来我们结合之前了解过的MySQL内部结构来深入了解吧。Innodb底层原理与Mysql日志机制执行器会选择对应的存储引擎来开始执行sql语句(根据建表时选定的存储引擎,一般不选择mysql默认是使用innodb存储引擎)原创 2023-08-05 00:24:23 · 313 阅读 · 1 评论 -
MySQL中的锁机制及优化实践
MySQL中有很多锁概念,比如乐观锁、悲观锁等等。mysql的事务为什么能保证要么全部执行成功,要么回滚到最初状态?我们一起来了解一下吧。MyISAM在执行查询语句SELECT前,会自动给涉及的所有表加读锁,在执行update、insert、delete操作会自动给涉及的表加写锁。InnoDB在执行查询语句SELECT时(非串行隔离级别),不会加锁。但是update、insert、delete操作会加行锁。另外,读锁会阻塞写,但是不会阻塞读。而写锁则会把读和写都阻塞。原创 2023-08-03 22:22:38 · 168 阅读 · 0 评论 -
MySQL内部结构详解
前面几篇文章介绍了mysql的底层数据结构以及索引的一些优化方式,本篇文章我们来了解一下mysql的内部结构是什么样的。原创 2023-08-03 20:19:14 · 133 阅读 · 0 评论 -
MySQL索引优化补充
上一篇文章介绍了常用的sql索引优化,这篇文章进行补充分组、排序、表连接相关的优化方式。原创 2023-08-02 20:46:16 · 30 阅读 · 0 评论 -
MySQL事务原理及优化
在一些比较严谨业务当中,我们经常会使用事务来保证一致性,那为什么要使用事务呢?这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事 务隔离机制、锁机制、MVCC多版本并发控制隔离机制、日志机制,用一整套机制来解决多 事务并发问题。接下来的,我们一起来理解数据库内部的执行原理。原创 2023-08-02 22:07:37 · 38 阅读 · 0 评论 -
MySQL索引优化及trace工具分析
作为程序员我们会经常会跟sql语句打交道,那就肯定离不开我们的索引,让我们一起来看看所有可以用哪些方式来优化吧。原创 2023-08-01 22:32:51 · 785 阅读 · 1 评论 -
MySQL的Explain工具详解及索引优化
mysql执行计划explain结果里的key有使用索引,如果select后面查询的字段都可以从这个索引的树中获 取,这种情况一般可以说是用到了覆盖索引,extra里一般都有using index;使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执 行这条SQL 注意:如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中。原创 2023-08-01 21:04:08 · 125 阅读 · 1 评论 -
MySQL索引底层数据结构与算法
在了解B+tree之前,我们先了解一下什么是B树,为什么mysql不使用B树作为索引的底层数据结构呢?以上就是B树这种数据结构1.叶节点具有相同的深度,叶节点的指针为空2.所有索引元素不重复3.节点中的数据索引从左到右递增排列然后我们再来看一看B+tree的数据结构1.非叶子节点只不存储data,只存储索引(冗余),可以放更多的索引2.叶子节点包含所有索引字段3.叶子节点用指针连接,提高区间访问的性能。原创 2023-07-31 21:40:20 · 72 阅读 · 1 评论 -
JVM内存结构之堆的垃圾回收过程
前言:上一篇文章介绍了简单的JVM内存结构,然后本篇重点解释堆区域的垃圾回收清理过程(jdk1.8),为什么说堆呢?因为垃圾回收的核心就是堆区域来做的,像栈区域执行完就会把线程释放掉。方法区(元空间)基本很少会被GC回收,而且一般存储常量、静态变量这种生命周期较长的数据,元空间的回收条件也非常苛刻。堆的垃圾回收结构:什么是垃圾: 个人理解,如果一个对象自己没有引用,也没有被别人引用,那这个对象存在与不存在都跟程序运行没有关系,那就是垃圾对象。堆的划...原创 2022-04-09 10:50:55 · 1130 阅读 · 2 评论 -
JVM简单了解内存结构
JVM内存结构图(jdk1.8)JVM内存结构总体划分为三大块部分,分别是:类装载子系统:负责将我们要执行的类加载到JVM虚拟机中。字节码执行引擎:主要负责控制程序的执行流程。运行时数据区:包括五个大部分组成,堆、栈、本地方法区、元空间、程序计数器。解释运行时数据区中五大部分各自负责做什么:堆:我们new出来的对象都会放到堆中。 栈:会对每个线程分配一块栈帧,栈帧内部有四个组成部分...原创 2022-04-07 19:08:31 · 415 阅读 · 0 评论 -
JVM类加载器过程与双亲委派机制(通俗易懂)
前言:为什么我们new出来的类能够直接使用呢?类加载运行全过程:如果要运行一个类,会有如下步骤1. java.exe调用底层jvm.dll(c++实现)文件创建java虚拟机。2. 创建引导类加载器。3. 创建jvm启动器实例Launcher,该实例由引导类加载器创建,该类负责创建加载其他类加载器。4. 通过类加载器ClassLoader.loadClass()去加载磁盘中的.class文件。...原创 2022-04-06 23:20:00 · 246 阅读 · 0 评论