自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 MySql性能优化(七)查询优化

MySql查询优化 ,执行过程优化,查询优化器,特定类型查询优化

2023-02-09 20:17:53 1945 3

原创 MySql性能优化(六)索引监控

索引监控

2023-02-03 17:17:15 675

原创 MySql性能优化(五)优化细节

MySql优化点

2023-01-29 15:17:53 312

原创 MySql性能优化(四)索引

MySql 索引 知识点总结

2022-12-22 10:49:45 608

原创 MySql性能优化(三)执行计划详解

Mysql 执行计划各个参数详解

2022-12-10 14:12:04 574

原创 MySql性能优化(二)范式、主键、存储引擎

范式化的表,在查询的时候经常需要很多的关联,因为单独一个表内不存在冗余和重复数据。这导致,稍微复杂一些的查询语句在查询范式的schema上都可能需要较多次的关联。这会增加让查询的代价,也可能使一些索引策略无效。因为范式化将列存放在不同的表中,而这些列在一个表中本可以属于同一个索引。在设计数据库时,有范式和反范式的说法,下面总结一下各自的优缺点。实际使用过程当中一般范式反范式配合使用。主键一般分为 代理主键,自然主键。

2022-11-24 20:20:50 145

原创 MySql性能优化(一)数据类型优化

Mysql数据类型优化以及字符集的选择

2022-11-20 15:27:30 873

原创 Fliter配置请求日志埋点

一个用于记录请求路径的拦截器

2022-09-06 19:52:58 212

原创 order by + limit 重复数据

踩坑记录

2022-08-19 15:34:28 530 1

原创 skywalking快速上手

Skywalking 链路追踪 快速上手 (windows 为例)

2022-07-06 17:10:54 2092

原创 使用云效 修改 layui 环境变量

使用云效添加执行步骤,切换环境变量

2022-06-01 17:32:28 312

原创 MVCC多版本控制

MySQL 隔离级别MVCC版本链undo 日志不可重复读幻读

2022-05-29 22:03:48 569 1

原创 TIDB简单了解

官方文档https://docs.pingcap.com/zh/tidb/stable/tidb-architectureHTAPTIDB应用场景体系结构TIDB的管理及调度-PDTIDB链接层和SQL层-TIDB Server

2022-04-24 13:37:20 4456

原创 Arthas-idea

Arthas官方文档:https://arthas.aliyun.com/doc/commands.html

2022-03-08 14:00:20 2756

原创 JVM(四) 垃圾回收算法

引用计数法根可达算法标记清除算法复制算法标记压缩算法分代算法

2022-03-07 15:25:30 2330

原创 JVM(三) -运行时数据区(Runtime Data Area)、栈帧(Frame)

​简单的模拟一下java运行时数据区(Runtime Data Area)其中,三个红色的部分,pc寄存器,本地方法栈,虚拟机栈是线程私有,随着线程创建销毁,生命周期与线程相同。蓝色的部分位线程共享区域,也是JVM垃圾收集器(GC)负责的区域。GC主要处理Heap所有的区域和一部分Method Area。先说红色的部分,线程私有区域。jvm推荐读本,官方网站上给的 The Java ® Virtual Machine Specification Java SE 8 EditionPC:

2022-01-18 16:33:39 810

原创 JVM(二) JMM、指令重排等

JSR 规范 Java Memory Model (JSR 133)JSR133中文版:http://ifeve.com/wp-content/uploads/2014/03/JSR133%E4%B8%AD%E6%96%87%E7%89%881.pdfJSR133: http://www.cs.umd.edu/~pugh/java/memoryModel/jsr133.pdfJMM(Java Memory Model (java内存模型 ≠ java虚拟内存模型))JMM 是一种符合内存规范的,屏

2022-01-11 22:33:30 569

原创 归并排序、Master公式

文章目录基本思想实现对数器验证递归时间复杂度计算 Master 公式基本思想归并排序采取分治的思想进行排序,借用一张图片说明一下将n个元素从中间切开,分成两部分。(左边可能比右边多1个数) 将步骤1分成的两部分,再分别进行递归分解。直到所有部分的元素个数都为1。 从最底层开始逐步合并两个排好序的数列。优点在于,分治之后,合并排序的过程时间复杂度是O(N)(只需要扫描一遍就可以将两个有序的数组合并成一个有序数组)实现 public static void MergeSort(int[] arr

2022-01-06 10:13:32 865

原创 JVM(一) 类的加载过程、自定义加载器、JVM执行模式设置

文章目录CLASS 加载过程Loading类加载器双亲委派自定义类加载器linkingVerificationPreparationResolutioninitializingJVM执行模式解释模式编译模式混合模式调优参数CLASS 加载过程Loading首先,类加载器通过类的全路径限定名称读取类的二进制字符流(获取二进制字符流)其次,将字节流代表的静态存储结构化为方法去的运行时数据(结构化静态数据)最后,在堆生成一个代表这个类的class实例(不是这个类的实例)(在内存中生成class对象)

2021-12-30 15:54:20 537

原创 RSA加密-防止自增id被遍历

文章目录非对称加密优点:缺点:RSA 算法demo加密demo入口解密demo非对称加密非对称加密需要两个密钥:公钥 (publickey) 和私钥 (privatekey)。公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。优点:安全缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密RSA 算法RSA算法是一种典型的非对称加密的算法具体信息安利一篇博客htt

2021-12-22 15:00:11 1396

原创 线程池、自定义线程工厂、自定义拒绝策略

线程池在阿里巴巴的开发规约当中,有这么一条为了防止创建销毁线程切换带来的开销,我们需要尽量使用线程池。创建方法在代码当中,有这么些个类![在这里插入图片描述](https://img-blog.csdnimg.cn/349556e6bc2646b2bbcde21c9c379f79.jpg#pic_center使用ThreadPoolExecutor创建线程,ExecutorService service = new ThreadPoolExecutor(‘七个参数’);我们debug进入

2021-12-16 18:16:37 2033

原创 异或(^)

异或(^)计算:性质Ques1.不使用额外空间交换两个数2.一个数组中其它数都出现多次,只有一个出现单次,求出现单次的数3.一个数组中其它数都出现多次,只有两个出现单次,求出现单次的数计算:计算时可以看作二进制无进位相加性质0^N == N , N^N = 0异或运算满足交换律结合律Ques1.不使用额外空间交换两个数 a = a^b; b = a^b; //b = a^b^b = a^0 = a a = a^b; //a = a^b^a = 0^b

2021-12-13 15:08:43 343

原创 JAVA 多线程 总结

基础概念进程、线程、协程首先来讲下这三种的区别。举个例子,我们启动我们的 xx.exe ,首先是会在内存当中开辟一块空间给这个程序加载到内存当中,要启动它的话,我们的系统要找到这个程序内部的主线程进行运行。定义:进程是操作系统进行资源分配的基本单位线程是调度执行的基本单位,多个线程共享一个进程的资源协程/纤程 是绿色线程,即用户管理的而不是操作系统管理的线程Ques:单核cpu设置多线程有意义嘛 有意义,线程有些操作(等数据,调io啥的)不消耗cpucpu密集型和 io 密集型 c

2021-11-22 11:50:54 792 2

原创 Data_Warehouse(DW 数仓(一))

数据仓库(Data WareHouse,DW / DWH),数据仓库是面对主题的,集成的,稳定的,反应历史变化信息的数据集合,可以对管理者进行决策支持。

2021-10-25 15:42:40 397

原创 数据结构-单调栈

2021-05-21 15:48:35 67

原创 数据结构-滑动窗口问题

我为大家画了一下大致的流程以下是按照上面的思路对Leetcode239题的解答,理解了滑动窗口之后这道题目就很简单了,代码如下public int[] maxSlidingWindow(int[] nums, int k) { //双端队列 LinkedList<Integer> linkedList = new LinkedList(); //结果集 数量为 nums.length - k + 1 int[] .

2021-04-30 00:04:25 138

原创 按照模板批量导出Excel并压缩下载

自顶而下的编程方法遇到复杂的问题时,先将需求拆分,将我们拆分的需求分成一个一个的模块,也可以作为函数,每一个模块负责自己的功能。这个时候不要纠结于模块内部的实现,我们只需要将模块的名字以及这个模块负责什么内容定好就可以了(简单的说:先搭好一个架子)保证当前逻辑正确后,把刚才假装存在的函数填上。遇到一个需求,需要通过数据库中的数据,按照给定的模板,导出一批 xlsx文件,并且将其压缩下载。这里我尝试着将需求拆分,变成一个个的小问题。这里采用的思路是:将文件导出到某个文件夹中,将文件夹压缩,删除文件夹以

2021-02-20 16:53:44 467

原创 Builder模式简单应用与自定义Select的Mapper模板

公司使用的 freemarker自定义代码生成模板,Mapper中在使用 SELECT * ,这无疑对性能造成了极大的影响,造成了很多不必要的IO读写。因此在想着改进一下代码,灵活的在使用中指定哪些字段需要查询,提升性能。Builder模式建造者模式(Builder Pattern)也叫做生成器模式,其定义如下:Separate the construction of a complex object from its representation so that the same constru.

2021-02-05 20:36:37 298

原创 @interface 与aop

在业务中有这样的场景:我需要在调某些方法的时候,需要提前拿出它的参数作业务判断,然后判断通过的代码再进行业务操作,此处我们使用自定义注解来解决问题。自定义注解import org.springframework.stereotype.Component;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention..

2020-12-01 20:00:19 745

原创 登录认证(二)—— jwt封装token与解析

JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。这几天在学jwt,首先介绍一下关于jwt的定义及其优缺点,有人美玉在前我就直接发链接了。什么是 JWT -- JSON WEB TOKEN——https://www.jianshu.com/p/576dbf44b2ae在项目中加入jwt首先在jar包中加入依赖 <..

2020-11-23 21:13:32 2551 2

原创 封装一个id生成器

ID号生成器(或:全局唯一ID生成器)是服务端系统的基础设施,而且id后端接触很频繁,是逃不开的。而关于ID生成的算法现在业界首屈一指的当属Snowflake雪花算法。本文采用的是基于Twitter的Snowflake算法实现分布式高效有序ID生产黑科技(sequence)——升级版Snowflake,直接使用Gitee当中的开源项目 https://gitee.com/yu120/sequence。直接将开源项目中的Sequence类和systemClock类复制到我们本地项目的clock...

2020-11-16 21:55:38 293

原创 registration status: 204

自己搭了一个springCloud项目,配置启动成功,但是client死活启动不了,排查了一圈,少了一个依赖将: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.2.RELEASE</version> &l

2020-11-13 14:20:11 5458

原创 java匹配字符串中某个字符

public class PatternMatchUtils { private static final String DASH = "-2"; public static String subStringVals(final String sourceNo){ //寻找第一个破折号出现的位置 final Matcher matcher= Pattern.compile(DASH).matcher(sourceNo); if (!matc.

2020-07-30 19:13:15 1136

原创 SpringBoot中使用策略模式

策略模式:定义一组算法,将每个算法都封装起来,相互之间可以互换。策略模式需要一个抽象算法接口,一组算法,一个容器类(Context)假设我们有一个场景:根据传值type的不同,调用不同的接口(加减乘除)抽象算法接口:public interface IZStrategy { /** * 计算 * @param a * @param b * @return */ BigDecimal doCalculate(BigDecima

2020-07-30 18:41:03 937

原创 反射(reflective)

反射(reflective):能够分析类能力的程序先举个例子:我在生产中遇到了一个情况,前端传给我的String字段中,凡事以 Like结尾的字段 ,都是我需要进行模糊查询的字段。现在为了防止特殊符号注入,我需要给诸如 % 这样的符号 加上一些 ("\")转义符。这个情况普遍存在在整个工程当中,那么可不可以将这个操作抽象成一个方法呢?@Slf4jpublic ModifyUtils { /** * 模糊查询以Like结尾 */ private static

2020-06-16 19:48:14 481

原创 关于前端传参后端无法接收的踩坑实录

之前写业务新增的时候,数据库表分为基础明细表,基础表存储基本信息,明细表存储明细。基础对明细是一对多。业务逻辑大概是这样,前端传基础信息和明细信息,明细信息分为甲方来源,乙方来源,丙方来源。于是我的数据结构就封成了@Setter@Getterpublic class RequestAddDto{ ... @ApiModelProperty(value = "明细信息 -...

2020-02-26 17:50:39 2740 2

原创 根据类中某个属性去重

因为某个业务根据某个字段去重,记不得从哪学到的,写了个方法:public static <T> Predicate<T> distinctByKey(final Function<? super T, ?> keyExtractor) { final Map<Object,Boolean> maps = new Concurrent...

2020-02-26 17:31:46 320

原创 spring自动注入报错

记录一下免得忘了每次都要找

2019-12-30 09:46:05 161

原创 登录认证(一) —— 几种登录方式简介

Auth权限分为Authentication登录权限和Authorization权限。前者我们登录时的用户密码,错误时错误码是401,后者是权限,比如一些管理员才能操作的权限,权限不足报403,对应的描述是forbidden。由于http是无状态的,即我们在第一次请求中登录,第二次请求时并不能够知道我们是登录过的,即第二次请求如何确保是第一次请求的客户端发起的呢?目前主要有两种方式。s...

2019-12-01 20:33:16 2953

原创 Nginx负载均衡

原生态的nginx并没有太多的集成插件,推荐openResty,下载地址:http://openresty.org/en/download.htmlOpenResty是基于Nginx和Lua的高性能web平台,内部集成精良的LUa库、第三方模块、依赖项。用于方便搭建能够处理高并发、扩展性极高的动态web应用、web服务、动态网关。快速上手:1.打开openResty文件夹 cmd进入命...

2019-12-01 14:13:16 102

JAVA_API_1.7中文(最新、最全).chm.7z

java_api_1.7中文,java_api_1.7中文,怎么看自己百度

2019-06-18

java-日志-log4j.7z

log4j是eclipse 当中常用的记录日志的文件,使用方法详见我的博客。在初涉边框下面有一节描述日志使用的

2019-06-18

空空如也

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

TA关注的人

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