自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 order by的工作流程

在日常的业务开发中,使用到MySQL的order by对数据进行排序是一个很正常的行为,那么你知道order by是如何工作的嘛?

2024-04-15 13:57:09 632

原创 count(?)为什么越来越慢?

在日常的业务开发中,汇总记录使用是常见用法,分页查询的时候都会用到,那么随着系统记录的数量越来越多,你有没有发现这条语句执行的也越来越慢了呢?

2024-04-12 14:25:54 329

原创 表数据删除了一半,表文件大小却不变?MySQL删除执行流程

本文讨论的就如题目所示,为什么在 MySQL 中,把表数据删除了一半,表文件大小却不变的?以下讨论前提都是使用InnoDB存储引擎,使用DELETE删除,并非。

2024-04-11 10:41:34 968

原创 MySQL全局锁,表锁,行锁介绍

数据库锁设计的初衷是处理并发问题,作为多用户共享的资源,当出现并发访问的时候,数据库需要合理的控制资源的访问规则,而锁就是用来实现这些访问规则的重要数据结构根据加锁的范围,MySQL 里的锁大概可以分为全局锁,表级锁,行锁三类

2024-04-09 16:51:26 959

原创 MVCC多版本并发控制

可重复读的核心就是一致性读,而事务更新数据的时候,只能用当前读如果当前记录的行锁被其他事务占用的话,就需要进入锁等待在可重复读隔离级别下,只需要在事务开始的时候创建一致性视图,之后事务里的其他查询都共用这个一致性视图;在读提交隔离级别下,每一个语句执行前都会重新算出一个新的视图。

2024-04-02 16:16:13 342

原创 MySQL事务隔离级别

在不同的隔离级别下,数据库行为是不同的,Oracle数据库默认隔离级别是读已提交MySQL默认隔离级别是可重复读,如果存在 Oracle 迁移到 MySQL,为保证数据库隔离级别一致,需要将 MySQL 的隔离级别改成读已提交MySQL 配置的方式是,将启动参数的值设置成,可以使用来查看当前隔离级别正常情况下,为了保证效率,我们一般都会把事务隔离级别调整成读已提交,那么什么时候需要可重复读的场景呢?大多数在做数据校对的时候,不希望有其他事务来干扰数据,启动可重复读是很方便的。

2024-04-02 13:16:30 738

原创 SQL更新语句执行流程

redolog 是 InnoDB 存储引擎独有的,是保证事物持久性的重要机制。当 mysql 意外宕机或崩溃时,保证已提交的事物,确定持久化到磁盘的一种措施,防止数据丢失;

2024-03-28 16:14:54 378

原创 SQL查询执行流程

在 MySQL 执行一条查询语句的时候,比如,这篇文章来简要的描述SQL查询的执行流程可以把整体结构分成 Server 层和存储引擎层,Server 层包括。存储引擎层则有常见的 InnoDB,MyISAM,Menory 存储引擎,在 MySQL5.5 后默认使用 InnoDB 存储引擎。

2024-03-27 17:53:26 313

原创 Lucene轻量级搜索引擎,Solr 和 ElasticSearch 都是基于 Lucene 的封装

Lucene 是一个本地全文搜索引擎,Solr 和 ElasticSearch 都是基于 Lucene 的封装

2024-03-11 21:30:51 948

原创 不得不做,敏感词过滤最佳实践

当然,不想造轮子的程序员不是好架构师,既然知道了这个算法的基本原理,那么我们就手动来实现一下这个功能吧。

2024-03-09 18:55:44 381

原创 史上最详细的Springboot发送各类邮件教程

*** 普通邮件发送* @param form 发送人* @param to 发送对象* @param subject 主题* @param content 内容*//*** Html邮件发送* @param form 发送人* @param to 发送对象* @param subject 主题* @param content 内容*//*** 邮件发送* @param name 发送人名称* @param form 发送人* @param to 发送对象。

2024-03-09 17:26:41 973

原创 枚举字典最佳实践

枚举是 Java 开发中必不可少的一部分,工作中常用来定义单例工具类,常量,状态字典等,本文主要介绍枚举当做字典的最佳实践。

2024-03-06 17:19:41 334 1

原创 本地缓存Caffeine

一个项目里可能需要缓存的数据有很多,比如用户信息,权限信息,菜单信息等等,我们需要给不同的场景分配不同的命名空间,并设置不同的过期时间/*** 用户缓存,缓存时间单位/秒*//*** 菜单缓存,缓存时间单位/秒*/;/*** 缓存名称*//*** 过期时间*/...

2023-11-15 11:04:24 143 1

原创 alibabaCloud整合Nacos注册中心和配置中心

如果要在特定范围内(⽐如某个应⽤上)覆盖某个共享dataId上的特定属性,请使⽤ extension-config。user-service-dev.yml(nacos上的当前环境配置) > user-service.yml(⽐如其他应⽤的数据库url,都是⼀个固定的url,使⽤。上的)> application.yml(本地的)数据的,但是这时候从nacos配置中心修改成。是特例,需要为该应⽤配置扩展属性来覆盖。,服务里是不会更新的,获取数据还是。的共享配置,但其中有⼀个应⽤。这样是可以正常获取到。

2023-10-30 15:44:40 94 1

原创 mybatis查询大批量数据

服务端数据准备完成后,进行数据传输,它允许应用程序在数据库服务器上打开一个游标并按需检索数据,而不是一次性获取整个结果集,类似客户端向服务端分批。公司里有很多需要跑批数据的场景,这些数据几十万到几千万不等,目前我们采用的是分页查询,但是分页查询有个深度分页问题,上百万的数据就会查询的很慢。客户端而言,数据每次读取都是从本机器的内核缓冲区,所以性能会更快一些。代表的客户端内核源源不断的输送数据,直到客户端请求 Socket 缓冲区满,这时的。问题,我们可以选择使用分页查询,这样就不会导致内存溢出问题了。

2023-09-14 15:34:18 861 1

原创 mybatis缓存源码解析

xml配置:yml配置:xml配置:yml配置:创建sqlSession代理对象默认使用2. 创建代理对象方法是个关键方法,决定是创建一个新的还是复用旧的3. 创建或复用对象如果在同一个事务中,则使用旧的对象如果不在同一个事务中,则重新通过创建新的对象如果不在同一个事务下,那么每次查询都会创建一个新的,那就看不到一级缓存的效果了,所以想要看效果,需要开启事务,保证几次查询用的是同一个创建新的对象这个日志很明显4. 创建对象这里的就是二级缓存的开关,

2023-09-13 15:25:07 152 1

原创 vite环境配置mockjs

vite环境下配置mockjs

2023-06-20 16:41:20 457

原创 vue配置scss全局样式

vue中配置scss全局样式

2023-06-20 13:31:32 342

原创 封装svg通用组件

使用vite+ts+vue3环境,封装svg通用组件

2023-06-20 12:42:41 113

原创 Mybatis批量插入的四种方式

测试结果还是显而易见的,循环插入>批量插入>BatchType插入>JDBC批量插入

2023-06-13 19:21:43 27304 1

原创 SPI机制

SPI (Service Provider Interface),主要适用于扩展作用,SPI可以很灵活的让接口和实现分离,让api提供者只提供接口,第三方来实现,然后可以使用配置文件的方式来实现替换或者扩展,在框架中比较常见,提高框架的可扩展性。

2023-05-11 18:03:02 130

原创 接口安全处理

在我们日常开发中,存在一些接口是敏感且重要的,比如充值接口,如果在你调用充值接口的时候被别人抓包了,然后就可以修改充值的金额,本来充值10元可以改成充值10w,产生重大生产问题,再或者说被被人抓包了,别人可以不限制的调用该充值10元的接口,调用几万次,也是会导致重大问题,那么我们该如何保证接口安全呢?说到数据加密,我们不难想到使用HTTPS进行传输,HTTPS使用了RSA和AES加密的方式保证了数据传输中的安全问题,具体的HTTPS的加密原理,请看。,所以一般转账类安全性要求高的接口开发,都需要。

2023-04-05 17:40:56 825 2

原创 HTTPS加密原理

HTTPS加密原理

2023-03-28 22:28:06 105

原创 服务OOM和CPU飙升排查

java服务OOM和CPU飙升排查

2023-03-01 12:42:54 301

原创 MDC实现微服务链路追踪

MDC实现微服务链路追踪

2023-02-27 19:07:19 1187 1

原创 Nacos服务跨分组调用

Nacos服务跨分组调用

2023-02-27 13:54:45 4592 2

原创 git基础操作

git基础操作

2023-02-19 19:58:04 31

原创 ThreadLocal父子间通信的四种解决方案

ThreadLocal 是存储在线程栈帧中的一块数据存储区域,其可以做到线程与线程之间的读写隔离。但是在我们的日常场景中,经常会出现父线程需要向子线程中传递消息,而 ThreadLocal 仅能在当前线程上进行数据缓存,这里就介绍4种父子间通信问题;

2023-02-19 19:27:52 1530

原创 xxl-job的入门教程

xxljob分布式定时任务入门教程

2023-02-17 22:04:41 3438 1

空空如也

空空如也

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

TA关注的人

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