自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (11)
  • 收藏
  • 关注

原创 MySQL中锁使用及原理

当我们向一个由AUTO_INCREMENT关键字的主键插入值的时候,每条语句都要对这个表锁进行竞争,这样的并发潜力其实是很低下的,所以InnoDB通过innodb_autoinc_lock_mode的不同取值来提供不同的锁定机制,来显著提高SQL语句的可伸缩性和性能。这也意味着在高并发的情况下,可能会出现自增值的重复或者不连续的情况。表级锁是mysql锁中粒度最大的一种锁,表示当前的操作对整张表加锁,资源开销比行锁少,不会出现死锁的情况,但是发生锁冲突的概率很大。

2024-04-02 22:17:32 998 1

原创 MySQL日志总结

在MySQL中,日志是非常重要的一个组成部分,它记录了数据库运行状态的各种信息,包括错误信息、查询信息、事务信息等等,是进行异常排查、性能优化、数据恢复和备份的关键基础。本文将重点介绍MySQL中常见的各种日志,解析MySQL日志的作用、底层原理和实现方法,并结合案例加以说明。能够对MySQL中的各种日志有比较全面和深入的了解和认识,有助于更好地使用和管理MySQL。

2024-03-19 22:40:59 851 1

原创 MySQL事务及实现原理

大多数据库管理系统的默认隔离级别(如oracle),该级别下的事务只能读取其他事务已经提交的内容,可避免脏读,但不能避免 不可重复读、幻读。Read View主要是用来做可见性判断的, 即当我们某个事务执行快照读的时候,对该记录创建一个Read View读视图,并且分配一个递增的事务ID,同时维护一个当前活跃事务id列表,把这些属性与DB_TRX_ID作比较,判断当前事务能够看到哪个版本的数据,既可能是当前最新的数据,也有可能是该行记录的undo log里面的某个版本的数据。否者给TM的回执NO。

2024-03-17 23:57:13 702 1

原创 java内存结构和内存模型

Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。它只是一个抽象的概念, 是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。每创建一个线程,虚拟机就会为这个线程创建一个虚拟机栈,虚拟机栈表示Java方法执行的内存模型,每调用一个方法,就会生成一个栈帧(Stack Frame)用于存储方法的本地变量表、操作栈、方法出口等信息,当这个方法执行完后,就会弹出相应的栈帧。

2024-03-12 23:18:51 825 1

原创 深入分析Java内存模型

java内存模型(Java Memory Model,JMM)是java虚拟机规范定义的,用来屏蔽掉java程序在各种不同的硬件和操作系统对内存的访问的差异,这样就可以实现java程序在各种不同的平台上都能达到内存访问的一致性。可以避免像c++等直接使用物理硬件和操作系统的内存模型在不同操作系统和硬件平台下表现不同,比如有些c/c++程序可能在windows平台运行正常,而在linux平台却运行有问题。

2024-03-12 12:57:59 773 1

原创 MySQL内部结构

比如表缓存,记录缓存,key缓存,权限缓存等。当MySQL接收到客户端的查询SQL之后,仅仅只需要对其进行相应的权限验证之后,就会通过Query Cache来查找结果,甚至都不需要经过Optimizer模块进行执行计划的分析优化,更不需要发生任何存储引擎的交互,缓存的意义在于快速查询提升系统性能,可以灵活控制缓存的一致性,MySQL5.7支持内部缓存,8.0之后就废弃掉了。同时所有的数据、数据库、表的定义、表的每一行的内容、索引,都是存在文件系统上,以文件的方式存在,并完成与存储引擎的交互。

2024-03-10 22:10:34 937 1

原创 MySQL索引总结

用于处理查询的索引长度,如果是单列索引,那就整个索引长度算进去,如果是多列索引,那么查询不一定都能使用到所有的列,具体使用到了多少个列的索引,这里就会计算进去,没有使用到的列,这里不会计算进去。如果字符是数字(‘5’)直接转为相对应的数字,如果是字符(‘a’)统一转为0,所以第一条sql会把等号右边的条件转为数字,然后走a字段的索引,第二条sql会把等号左边的条件转为数字,那就是mysql中e字段,这个工作量就比较大,因此mysql分析出不走索引,性能会更好。那么,数据库是否会存在选错索引的情况了?

2024-03-10 17:56:15 696 1

原创 MySQL中B+树实现原理

如果不存储数据,那么就会存储更多的键值,相应的树的阶数(节点的子节点树)就会更大,树就会更矮更胖,如此一来我们查找数据进行磁盘的 IO 次数又会再次减少,数据查询的效率也会更快。因此其内部结点相对B树更小。问题:我们在平衡二叉树中,每个节点只保存了一个键值和数据,当我们保存海量的数据是,二叉树的高度就会非常高,而且磁盘的利用率也极低,访问磁盘的次数非常多,所以我们必须提高效率,一个节点保存多个键值。AVL树的平衡因子的绝对值不会超过1,正因为如此AVL树的形状肯定不会退化成一条链表的,而是“矮胖”型的树。

2024-03-06 23:32:37 601

原创 MySQL存储引擎

存储引擎是MySQL的组件,用于处理不同表类型的SQL操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。使用哪一种引擎可以灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能。MySQL服务器使用可插拔的存储引擎体系结构,可以从运行中的 MySQL 服务器加载或卸载存储引擎。查看存储引擎-- 查看支持的存储引擎-- 查看默认存储引擎。

2024-03-05 23:29:15 573

原创 深入分析java类内存结构详情

在使用递归的时候经常会抛出StackOverflowError,顾名思义就是栈满了,而我们这里所说的栈在java中通常就是虚拟机栈(vm stack),在每个方法执行的同时都会创建一个栈帧,用于存储局部变量表、操作数栈,动态链接,方法出口等信息,每一个方法从调用直到执行结束的过程就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。在HotSpot VM中,有继承关系的对象在创建时,父类的属性会被分配到相应的对象中,由于父类的属性不能和子类混用,所以它们必须单独排布在一个地方,可以认为它们就是从上到下的一个顺序。

2020-07-03 17:17:13 302

原创 深入浅出Java虚拟机中类加载过程

缓存机制:缓存机制将会保证所有加载过的Class都会被缓存,当程序中需要使用某个Class时,类加载器先从缓存区中搜寻该Class,只有当缓存区中不存在该Class对象时,系统才会读取该类对应的二进制数据,并将其转换成Class对象,存入缓冲区中。通俗的讲,就是某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父加载器,依次递归,如果父加载器可以完成类加载任务,就成功返回;· 对于同时被static和final修饰的常量,必须在声明的时候就为其显式地赋值,否则编译时不通过;

2020-07-02 16:23:10 117

原创 nginx的详细使用

正向代理:特定情况下,代理用户访问服务器,需要用户手动的设置代理服务器的ip和端口号。 反向代理:是用来代理服务器,代理用户要访问的目标服务器。代理服务器接受请求,然后将请求转发给内部网络的服务器(服务集群模式),并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。 Nginx在反向代理上,提供灵活的功能,可以根据不同的正则采用不同的转发策略,如图设置好后不同的请求就可以走不同的服务器。

2020-07-01 12:49:24 349 1

全套spring cloud 项目

Spring Cloud是一系列框架的集合,其基于Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,构建了服务治理(发现注册)、配置中心、消息总线、负载均衡、断路器、数据监控、分布式会话和集群状态管理等功能,为我们提供一整套企业级分布式云应用的完美解决方案。 Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud CLI等项目。这些项目是Spring将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给我们开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

2024-03-27

jsoup基于java爬虫项目

jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 Jsoup的主要功能 1)从一个URL,文件或字符串中解析HTML 2)使用DOM或CSS选择器来查找、取出数据 3)可操作HTML元素、属性、文本 注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。 Jsoup的主要功能 1)从一个URL,文件或字符串中解析HTML 2)使用DOM或CSS选择器来查找、取出数据 3)可操作HTML元素、属性、文本 注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。

2024-03-27

JD-GUI-1.4.0

JD-GUI是一个用于反编译Java字节码的图形化工具。要使用JD-GUI反编译JAR文件,请按照以下步骤操作: 下载并安装JD-GUI:访问JD-GUI官方网站(http://java-decompiler.github.io/),下载最新版本的JD-GUI。 打开JD-GUI:双击下载的JD-GUI启动程序,或者在命令行中运行它。 反编译JAR文件: 打开JD-GUI后,你可以通过菜单栏选择“文件”->“打开ZIP文件”或者拖拽JAR文件到JD-GUI窗口中来加载JAR。 JD-GUI将显示JAR中所有类的源代码。 若要保存反编译的代码,可以右键点击特定的类或包,选择“保存全部”或者“导出类”到文件。 然后使用JD-GUI界面打开你的.jar文件。

2024-03-21

一套完整介绍java内存模型和内存结构的文档

一套完整介绍java内存模型和内存结构的文档

2024-03-12

一套MySQL索引总结就够了

一套有深度的SQL索引总结

2024-03-11

一篇MySQL内部架构就够了

有深度的Mysql内部架构

2024-03-11

SourceTreeSetup-3.2.6.zip

SourceTree是一款免费且好用的git客户端工具,免费,好用。SourceTree是一款免费且好用的git客户端工具,免费,好用。

2020-01-17

SpringBoot+mybatis+redis+rabbitmq

SpringBoot+mybatis+redis+rabbitmq整合的一个简单demo.

2018-02-09

swagger Demo

Swagger简单Demo例子,Swagger简单Demo例子,Swagger简单Demo例子

2018-02-06

springBoot

springboot Demo springboot Demo springboot Demospringboot Demo

2018-02-06

tomcat 配置文件

tomcat 配置文件 tomcat 配置文件tomcat 配置文件tomcat 配置文件

2018-02-06

springBoot+swagger+Hibernate+Redis+Mysql Demo

springBoot整合swagger、Hibernate、Redis、Mysql一个demo

2018-02-05

springboot uploadFile

springBoot uploadFile文件上传,springMVC也可以使用

2018-01-31

springBoot demo

springBoot微服务结合MyBatis持久框架的 Demo。springBoot微服务结合MyBatis持久框架的 Demo。

2018-01-26

CSS树形菜单

前端树形菜单源码,前端树形菜单源码,前端树形菜单源码

2017-10-10

elasticsearch权威指南-中文

elasticsearch权威指南-中文,适合初级者学习elasticsearch权威指南-中文

2017-10-09

VB+ACCESS学生信息管理系统

本系统采用的是VB语言结合ACCESS数据库完成的程序。

2012-12-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除