自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 count查询详解

1。

2025-04-02 19:49:38 346

原创 MySQL表关联优化

2 基于块的嵌套循环连接Block Nested-Loop Join(BNL)算法。如果一次性不能将驱动数据加载进join_buffer中,则进行多次。1 嵌套循环连接Nested-Loop Join(NLJ)算法。那么此时如果采用NLJ算法进行关联查询呢?1采取全表扫描,将扫描a行数据。3 关联表SQL的优化。

2025-04-01 08:49:14 684

原创 MySQL分页查询优化

2 非主键排序分页查询优化。1 自增主键分页查询优化。

2025-03-31 19:33:44 307

原创 MySQL排序详解

MySQL支持两种方式排序filesort和indexindex是指扫描索引本身完成排序index效率高filesort是指通过内存或者排序文件完成排序filesort效率低orderby满足两种情况时会使用index排序orderby语句使用索引最左列where条件字段和orderby字段组合满足索引最左列配置给每个回话分配排序操作的缓冲区大小当需要排序的数据。

2025-03-29 17:31:31 415

原创 MySQL查询成本计算

【代码】MySQL查询成本计算。

2025-03-29 15:59:17 359

原创 MySQL索引优化最佳实践

,<>,not in ,not exists,is null ,is not null查询,否则会走全表扫描。尽量避免使用in或者or查询,MySQl会进行成本计算决定是否使用索引。使用<,>,<=,>=时MySQL会进行成本计算评估是否使用索引。中做任何操作(计算,函数,类型转换)like查询时遵循最左前缀查询。范围查询优化,大范围拆分小范围。减少select * 语句,

2025-03-25 19:29:23 222

原创 MySQL Explain执行结果详解

1 idselect的序号列通常有几个select就有几个id(除非产生衍生表合并优化)id的顺序是按select出现的顺序增长的id列数字越大执行优先级越高id相同则从上往下执行id为NULL最后执行MySQL中的子查询select子查询select与from之前的子查询语句在主from之后执行from子查询from和where之间的子查询在where子查询之后执行from子查询执行后通常会产生临时表,也称派生表。

2025-03-25 08:29:08 710

原创 MySQL索引数据结构

平衡树虽然解决了数据单调递增或者递减时导致退化为链表的问题,但是在插入时,需要频繁的旋转来保持二叉树的平衡,对于插入修改的性能影响极大。产生的原因是3节点的右子节点多了一个左子节点,此时将5节点右旋后再将3节点左旋解决。右旋的流程为(当前节点为3节点,右旋就是让自己变成右子节点)每个节点的值比左子树所有节点的值大,比右子树所有节点的值小。每个节点比左子树所有节点的值大,比右子树所有节点的值小。每个节点到叶子节点的每个路径黑色节点的个数都相等。每个节点的左子树的高度与右子树的高度差不超过1。

2025-03-08 19:04:41 945

原创 MySQL执行更新SQL流程

当有一条记录需要更新时,InnoDB引擎就会先把记录写在redo log日志中,然后在后面系统比较空闲的时候,将这个操作记录更新到磁盘里面。max_binlog_size:设置单个binlog日志文件的最大大小,当达到该值时,会生成一个新的日志文件。2:每次提交立即将redo日志缓冲区内容写入到文件系统缓存,不立即同步到磁盘,由操作系统决定何时同步到磁盘。expire_logs_day:设置binlog日志文件的保留天数,默认0,表示不删除旧的日志文件。

2025-03-04 19:28:31 989

原创 MySQL整体架构

InnoDB有自己的日志系统,redo log(重做日志)和undo log(撤销日志)binlog记录了所有的DML(INSERT,UPDATE,DELETE)语句。MySQL支持多种存储引擎,比如InnoDB,MyISAM,Memory等等。客户端为连接MySQL服务端的工具或者驱动,比如JDCB,ODBC等等。InnoDB是MySQL默认的存储引擎,支持事务,行级锁以及外键约束。Server层有自己的日志系统,binlog日志。生成执行计划:基于以上分析,生成SQL执行计划,2.1 Server层。

2025-03-02 11:25:09 962

原创 基于JDK17的GC调优策略

参考资料:JDK工具官网文档JDK17 java指令官网文档JDK8java指令官网文档1 JVM有哪些参数可以调1.1 标准参数以开头所有HotSpot都支持使用javahelp或者java查看常用的标准参数listmodules查看当前Java进程中的模块showmoduleresolution查看当前Java进程中各个模块的依赖关系verboseclass显示类加载信息。

2025-02-23 19:57:32 293

原创 jdk17新特性

2.4.4 exports和open声明对外的API。2.3 密封类 Sealed Class。2.4 模块化Module System。2.2 隐藏类Hidden Class。module-info.java⽂件。module-info.java⽂件。module-info.java⽂件。不需要依赖jdk也可以执行的可执行。2.4.5 uses服务开放机制。1.2 switch表达式增强。2.4.6 构建模块化jar包。1.4 var局部变量推导。2.1 记录类record。2.4.1 什么是模块化。

2025-02-22 15:44:32 993

原创 jdk9新特性

1。

2025-02-12 19:00:41 605

原创 jdk8新特性

1 lambda表达式lambda本质上是一段匿名内部类也可以是一段可传递的代码完整的lambda由三部分组成:参数列表,箭头,声明语句完整语法大部分场景下,参数类型可以根据上下文环境推断出来,因此参数类型可以省略当只有一个参数时小括号可以省略当执行语句只有一行代码时,可以省略花括号,return和语句结尾的分号1.1 类型推断根据上下文信息推断出参数类型,而不需要显式声明1.2 局部变量限制lambda表达式执行代码块中可以直接使用外部变量。

2025-02-09 19:28:45 892

原创 java常量池

方法时,在字符串常量池分配内存,内存值指向str对象。方法返回字符串常量池引用,与str引用不同。3.1 为什么要设计字符串常量池。方法返回引用和str是同一个引用。方法返回的引用与str引用一致。因为test通过形参传入,会。3.2 创建字符串对象的。3.4 字符串的不可变性。3.3 字符串的+操作。1 Class常量池。

2025-01-23 18:21:54 536

原创 jvm调优工具

1。

2025-01-16 19:42:01 917

原创 JVM对象内存分配

大小占比幸存区超过50%之后。young gc之后,当。内某一批(gc年龄1~n。,将gc年龄>=n的对象。4 老年代空间担保机制。或者标量替换任何一个。

2025-01-01 18:18:58 1053

原创 JVM对象内存结构

jvm中数组长度存储为4字节,则数组最大长度为Integer的最大值。对于不同状态(无锁态,轻量级锁,重量级锁,GC标记,偏向锁)的对象。哈希码(HashCode)、GC分代年龄、锁状态标志。64位操作系统中占8字节,开启指针压缩时占4字节。分析自定义类App对象大小。32位操作系统中占4字节。分析Object对象大小。通过jol计算对象大小。分析int[]对象大小。jvm对象中属性为基础。表明对象属于哪个类型。

2025-01-01 12:24:46 412

原创 JVM对象创建过程

划分内存通常有两种方式,指针碰撞和空闲列表。以及每个属性什么类型的数据已经。如何解决内存分配时的并发问题?空间(也是从伊甸区分配),首先通过指令参数从常量池。5 执行init()方法。,有一个指针指向分界线。

2024-12-31 21:20:50 565

原创 Java类加载

java类加载器详解以及如何控制扩展类加载器

2024-12-29 09:33:15 533

原创 关于sql优化思路方案

6、对于大数据量表考虑采用分区表,定期归档(归档表采用truncate清理原表),采用不同纬度表。7、对于mysql的innodb引擎,考虑调整page size大小。3)是否使用了合适的字段类型,是否占用无效存储问题。8、考虑更换适合大数据量查询的数据库产品(列式储存)。2、了解查询目的,看sql是否可以去除多余关联查询。3、explain查看执行计划,添加必要的索引。4)分析是否使用合适的存储引擎。1、分析sql,查看语句编写是否存在问题。以下是整体的优化思路方案,不做具体的细节描述。

2023-09-11 21:56:11 101

原创 优化Mysql导入sql文件慢问题

1、调整参数innodb_flush_log_at_trx_commit,默认值1此参数用于控制redo日志写入log file以及落盘时机。0:log buffer每秒一次写入log file中,并且让数据落盘。1:每次提交事务都会把log buffer的数据写入log file中,并且让数据落盘。2:每次提交事务都会把log buffer的数据写入log file中,每秒让数据落盘。2、关闭binlog,避免生成二进制日志文件3、在开启binlog的情况下,优化方案。

2023-08-14 15:18:16 1787

原创 类加载机制

类加载机制1    双亲委派机制机制核心是向上委派加载一个类时,首先会通过类的全限定名判断类是否已经被加载,被加载时,直接返回,未被加载时,委托给父类加载器去加载,重复相同的流程直至启动类加载器,如果父类加载器所负责的加载路径中加载不到该类,则当前类加载器在自己的加载路径找该类。局限性无法做到不委派,或者向下委派打破双亲委派不委派向下委派(SPI机制中的一部分)实现打破双亲委派的方式1)自定义类加载器重写sun.applet.AppletClassLoad

2020-12-25 21:14:25 184

原创 类加载器

类加载器1    启动类加载器(BootStrapClassLoader)没有实体,将c++写的一段逻辑定义为启动类加载器加载路径启动类加载器加载路径为:JAVA_HOME\jre\lib*.jar;JAVA_HOME\jre\class*;查看启动类加载器加载路径:#系统属性System.getProperty("sun.boot.class.path");#apiLauncher.getBootstrapClassPath().getURLs();

2020-12-25 21:12:37 140

原创 类的生命周期

类的生命周期1 加载加载阶段做的三件事1)通过类的全限定名获取类class文件的二进制流2)解析成运行时数据,即InstanceKlass实例,存放在方法区3)在堆区生成该类的Class对象,即InstanceMirrorKlass实例类的二进制流从哪获取1)classpath参数指定的路径中2)压缩包3)网络jvm加载类时懒加载模式,使用的时候才会加载常用的类会采用预加载模式。预加载的类:包装类、String、Thread2 验证1)文件格式验证验证字节流是否符合Class文件格

2020-12-18 21:10:19 280 1

原创 spring aop应用

spring官网关于aop的介绍在以下两个章节:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#aophttps://docs.spring.io/spring-framework/docs/current/spring-framework-reference/c...

2020-04-01 20:54:01 231

原创 Spring的循环依赖

场景分析public class AService { @Autowired private BService BService; public AService(){ System.out.println("init aService"); }}public class BService { @Autowired priv...

2020-03-22 21:06:26 198

原创 Spring BeanDefinition

1 是什么Spring中用来描述Bean的类,作用相当于模具,批量生产每一样东西时可以先制造模具,模具记录着尺寸,形状等详细信息,可以加快生产效率,BeanDefinition的作用也是类似的,记录着Bean的scope,lazy,class等信息,需要Bean对象时可以根据BeanDefinition记录的属性信息可以创建并初始化该Bean对象。Spring的生命周期就是根据xml元数据配...

2020-03-13 17:17:45 213

原创 Spring Bean工厂后置处理器

1 是什么是一种干预Bean工厂(DefaultListableBeanFactory)初始化过程的处理器,Bean工厂的初始化包括Bean工厂的属性设置,以及每一个Bean对应的BeanDefinition对象的实例化和初始化,代理的完成等等。2 两个顶级接口2.1 BeanFactoryPostProcessor只有一个方法:void postProcessBeanFactory(C...

2020-03-13 17:15:42 657

原创 JAVA8新特性

JAVA8新特性1 函数式接口用@FunctionalInterface修饰的接口叫做函数式接口 ,或者,函数式接口就是一个只具有一个抽象方法的普通接口,@FunctionalInterface可以起到校验的作用,如果加了**@FunctionalInterface**注解的接口有两个或者两个以上的抽象方法,编译时报错。在JDK7中其实就已经有一些函数式接口了,比如Runnable、Call...

2020-03-13 16:56:51 340

原创 如何将一个对象或者类注册到Spring容器

1 将类注册到到Spring容器该类的实例化和初始化过程由spring控制。方法一:xml注册Beanxml注册Bean,如果spring配置元数据的方式是xml时,可以手动在xml注册第三方jar包中的类。常用来配置本项目中的Bean。<bean id="service1" class="stu.spring.services.Service1"></bean>...

2020-02-05 18:53:10 5055

原创 注入的属性接口有多个实现类的问题

场景:Services接口,存在两个实现类Service1,Service2public interface Services {}@Componentpublic class Service1 implements Services {}@Componentpublic class Service2 implements Services {}在BService类中,依赖S...

2020-02-03 21:41:20 429

原创 spring生命周期回调

有关Spring的生命周期回调在官网https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-lifecycle有详细讲解。1 Bean的生命周期回调1.1 Bean的生命周期初始化回调1.1.1 @PostConstruct注解@Compo...

2020-02-03 20:51:14 353

原创 Spring中@Autowire并不是自动装配

1 spring自动装配有关spring中的自动注入,在官网https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-autowire有详细讲解,自动装配模型分为四种:nobyTypebyNameConstruction1.1 xml配...

2020-02-03 18:49:01 341

原创 单例bean需要依赖原型Bean的问题

场景:一个单例的Bean A需要依赖原型Bean B,由于A是单例的而引起A中引用的B也出现单例的现象。解决方法在spring官网https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-method-injection中给出:解决方法一:...

2020-02-02 15:57:36 388

原创 Redis缓存三大问题

1 缓存穿透1.1 问题描述缓存穿透是指查询一个一定不存在的数据,由于缓存不命中,并且出于容错考虑, 如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。1.2 造成的原因1.业务代码自身问题2.恶意攻击。爬虫等等1.3 解决方案方案一:缓存空对象public class NullValueResultDO implements...

2020-01-31 22:05:01 428

原创 redis集群

1. Redis主从复制1.1 主要功能1)异地容灾备份2)读写分离1.2 配置1.2.1 主机配置不做任何配置1.2.2 从机配置方式一:在线动态配置salveof 主ip 主portCONFIG SET masterauth pass方式二:配置文件配置replicaof 主ip 主portmasterauth passwd1.3 原理第一步:建立连接1...

2020-01-31 22:02:23 274

原创 redis持久化机制

1. 是什么redis是基于内存的数据库,将内存中的数据写到磁盘中,就是持久化为什么会存在持久化?因为没有持久化的话redis重启或者断电之后数据就会丢失。2. RDBredis默认的持久化方式。2.1 RDB持久化配置#在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合save 900 1save 300 10save 60 10000#指定持久化文件...

2020-01-22 16:02:18 178

原创 redis入门

Redis简介1.1 是什么开源免费的;c语言编写的;单线程,高性能的(key/value)内存数据库;基于内存运行并支持持久化的nosql数据库。1.2 能干什么可以用来做缓存,分布式锁,单点登录会话缓存,统计网站访问量等等。1.3 下载redis各个版本下载链接http://download.redis.io/releases/1.4 安装1.解压 tar...

2020-01-22 15:58:48 173

原创 桌面版centos 6.5下安装oracle11g

目录第一步:安装需要的软件第二步:配置必要的配置文件第三步:创建安装用户、组和目录第四步:傻瓜式安装 第五步: 配置开机自启第六步 :解决oracle sqlplus命令行模式下上下左右以及delete键不能正常使用的问题第七步:验证是否成功参考https://www.linuxidc.com/Linux/2013-06/85259p4.htm...

2019-06-02 17:48:08 261

jacob1.19(包含jacob-1.19-x64.dll和jacob-1.19-x86.dll)

word转pdf工具,完美转换,支持水印,页眉,页面,表格格式转换.

2019-05-08

空空如也

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

TA关注的人

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