- 博客(131)
- 收藏
- 关注
原创 表 t1 建立联合索引 (a, b, c),where a = ? and b = ? and c = ? 和 where a = ? 两者之间为什么有性能的差距
场景:表 t1 建立联合索引 (a, b, c),where a =?为了验证上述结论,我们做一个实验:表 t1 建立联合索引 (a、b、c),实际记录中,a 字段的索引区分度不高,但 b、c 字段的索引区分度很高,共 100W 条记录。从理论上来说(不考虑其它的特殊情况,比如由于数据量或频繁回表等原因导致的优化器不使用索引过滤),这两条查询都会走联合索引 (a, b, c)。是 MySQL 8.0.18 及以上版本引入的一个调试工具,用于分析 SQL 查询的实际执行过程。多了两重的条件过滤。
2025-03-26 16:36:19
756
原创 MySQL 表 t1 建立联合索引 (a, b, c),在 where a < ? and b > ? and c < ? 中哪些索引生效
这里只分析了目前能想到的常见情况,其实还有很多,这是由于查询优化器会对查询进行优化,包括重写查询、决定表的读写顺序、选择合适的索引等,综合考虑数据量、是否回表、回表成本、索引区分度等因素生成查询成本最小的执行计划。无回表 + 表数据量非常少:使用覆盖索引进行全索引扫描,索引字段 a、b、c 都未生效(未使用索引进行条件过滤)。
2025-03-26 16:20:58
1018
原创 MySQL 唯一索引下先事务A插入再事务B当前读是否阻塞问题
可重复读隔离级别下,一个唯一索引,有数据 5、9,先事务 A 插入数据 6,然后事务 B 当前读。场景 1:事务 B 当前读 where col > 7 会阻塞吗?场景 2:事务 B 当前读 where col > 6 会阻塞吗?场景 3:事务 B 当前读 where col >= 6 会阻塞吗?场景 4:事务 B 当前读 where col >= 5 会阻塞吗?
2025-03-04 01:50:19
449
原创 Shell 脚本 + cron 定时备份 Docker MySQL
每天凌晨 2:30 备份。脚本需要完成任务:1.备份多个数据库 stu_manage、blog_manage 到 /data/mysql/backup 文件夹。2.备份开始和备份结束给出相应的提示信息,写入到 /data/mysql/log/backup.log 日志文件。3.备份后的文件以备份时间命名,并打包成 .tar.gz 格式,比如 2024-12-29_023004.tar.gz。4.备份完成后,检查是否有 10 天以前备份的数据库文件,如果有就将其删除。
2024-12-29 18:44:22
975
原创 不同版本的 Redis 的键值对内存占用情况示例
通过上面对源码的分析,其实我们就可以知道分析得到的内存使用情况为什么会有差异了。首先需要说明的是,Redis 6.0 与 Redis 7.0 都为都请求了9字节的内存字节大小,但 jemalloc 实际都分配了16字节的连续内存块,但是对于多出来的7字节却持有不同的态度。Redis 6.0 中,不会将多分配的 7 字节作为 sds 结构体中的字符数组 buf 的空间使用,即会设置成员。Redis 7.0 中,会将多分配的 7 字节作为 sds 结构体中的字符数组 buf 的空间使用,即会设置成员。
2024-12-17 19:05:28
1193
原创 Antd Table 分页条件下的动态数据合并单元格
本文介绍 Ant Design Vue 的 a-table 表格组件如何在分页条件下的对动态数据合并单元格。我们希望进行行合并,即将相同日期和相同店铺列的行单元格分别进行行合并。由于数据量可能会很大,因此需要进行分页处理。**在分页情况下,我们进行的行合并其实只需要考虑这一页的记录即可,也就是将这一页的所有记录中相同日期和相同店铺列的行单元格分别进行行合并。**
2024-10-14 03:57:09
1724
原创 mysql 忘记 root 密码的解决办法(针对不同 mysql 版本)
MySQL 有一个 5.7.6 分界线,是由于从 MySQL 5.7.6 版本开始,`mysql.user` 表中的 `password` 列已被废弃,并且从 MySQL 8.0 版本中完全移除。在 MySQL 5.7.6 及以后的版本中,密码存储在 `authentication_string` 列中,该列使用的是新的身份验证插件和密码哈希算法。mysql 服务相关命令知识补充。
2024-06-26 00:53:07
1961
原创 String 最多能存储多少个字符/String 字符串的最大长度/String 字符串有没有长度限制
为什么最大长度是 65534 而不是 65535 呢?这是 Java 虚拟机历史上的一个设计缺陷:如果 Java 虚拟机中的一个方法的 code 属性的长度刚好是 65535 个字节,并且以一个 1 个字节长度的指令结束,那么这条指令将不能被异常处理器所处理。不过编译器可以通过限制任何方法、实例初始化方法或类初始化方法的 code[] 数组最大长度为 65534,这样可以间接弥补这个 BUG。String 在不同的时期,具有不同的长度限制。
2024-04-29 02:01:05
2160
3
原创 力扣442数组中重复的数据:六种实现方案,暴力线性查找,排序+二分查找,排序+双指针,哈希查找,标记数组,复用 nums 成为标记数组
【代码】力扣442数组中重复的数据:六种实现方案,暴力线性查找,排序+二分查找,排序+双指针,哈希查找,标记数组,复用 nums 成为标记数组。
2024-04-13 14:32:11
474
1
原创 RestTemplate 请求响应数据出现乱码问题,RestTemplate 如何解压缩 gzip 数据
原理:当 RestTemplate 接收到经过 Gzip 压缩的响应时,底层的 HTTP 客户端库会自动解压缩这个响应,然后将解压缩后的内容传递给 RestTemplate 进行处理。在最后呢,我结合着浏览器可以正常响应数据而 RestTemplate 不可以,出现了乱码,以及我观察到响应头的一个字段。但遗憾的是,还是没有用。然后再想的是默认注入的 RestTemplate 是不是内置的字符编码有问题。因此,我猜测是字符编码的问题,于是我需要重新设置一下默认的字符编码。就对数据进行了解压缩。
2024-03-29 01:31:11
2352
1
原创 计算机网络第六章:应用层
应用层协议定义:应用进程交换的报文类型,请求还是响应?各种报文类型的语法、语义;进程何时、如何发送报文,以及对报文进行响应的规则(同步)。域名服务: DNS;文件传输:FTP;电子邮件:SMTP 、POP3;远程登陆:TELNET;WWW 服务: HTTP。互联网早期是通过共享一个文本文件的方式,让主机知道 IP 地址与名字(域名)的对应关系。有新主机加入互联网,在该文件中新增加一条域名与 IP 地址相对应的记录。随着互联网规模迅速扩大,这种方式的时效性太差。
2023-12-03 00:33:32
2167
原创 计算机网络第五章:运输层
网络层最终解决的问题分组从一台主机经过网络到达另一台主机,即主机到主机间的通信。主机中谁发送的数据、谁接收数据?IP 分组无序到达目的主机,接收进程如何处理?可靠传输问题。TCP 是面向连接TCP 连接只能有两个端点,TCP 连接是点对点的(一对一);TCP 提供可靠交付的服务;TCP 提供全双工通信。面向字节流TCP 中的“流”(stream)指的是流入或流出进程的字节序列;
2023-12-03 00:32:31
1706
原创 计算机网络第四章:网络层
数据链路层解决了同一局域网计算机间帧的传输问题异构网络互联,即跨局域网连接和资源共享;互联网络中主机标识问题;互联网中主机间路由选择问题(最佳路径);互联网中数据转发的问题(分组转发)。局域网:属于资源子网;广域网:属于通信子网。IP 地址就是给每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符;
2023-12-02 03:14:25
1722
1
原创 计算机网络第三章:数据链路层
结点:主机、路由器。物理层解决了相邻结点透明传输比特的问题。传输错误问题:发送端发送比特 1,而接收端收到比特 0,接收端无法知道接收的是否正确?谁接收的问题,多个设备连接问题:谁能发送数据?数据发送给谁?谁负责接收和处理?传输结束问题:如何知道一组数据即将到来?这组数据何时结束?比特错误一般为连续比特错误(外界干扰影响连续比特传输),离散比特错误不易检测。
2023-12-02 03:12:56
1594
原创 计算机网络第二章:物理层
光纤通信是利用光导纤维(光纤),传递光脉冲进行通信,有光脉冲表示 1,无光脉冲表示 0。由于可见光的频率非常高,约为10810^8108MHz 的量级,因此一个光纤通信系统的传输带宽远远大于目前其它各种传输媒体的带宽;发送端和接收端都有光电转换器。将自由空间称为“非导引型传输媒体”。无线传输所使用的频段很广短波通信(即高频通信)主要是靠电离层的反射,但短波信道的通信质量较差,传输速率低;微波在空间主要是直线传播。地面微波接力通信;卫星通信。无线电波传输:距离远;
2023-12-01 04:02:04
1700
原创 计算机网络第一章:概述
交通网络:高速公路网络、铁路运输网络、航运网络等;通信网络:电信网络、邮政网络等。网络特点:连线和结点。网络作用:连通和共享。分组交换采用的存储转发技术。发送端把较长的报文划分成较短的、固定长度的数据段。每个数据段签名添加上首部构成分组(packet)。邮局对收寄的包裹有重量要求。若需发送的书籍包裹(包裹)超出要求:将书籍包裹分成小包裹(分组);每个小包裹注明目的地址(首部信息);邮局将这些小包裹存储转发至目的地;每个小包裹可能选择不同路径到达目的地。
2023-12-01 03:59:39
1747
原创 Spring的循环依赖问题
你的完整创建要依赖与我,我的完整创建也依赖于你。相互依赖从而没法完整创建造成失败。一级缓存:存储的是 成品Bean 对象 ,存储的所有的单例对象,其实可以说和循环依赖没有关系。二级缓存:存储的是 半成品对象,是解决循环依赖的关键,如果不去考虑 AOP 代理增加的情况,只有二级缓存的情况下也是可以解决循环依赖的,也就是不需要三级缓存。三级缓存:三级缓存存在的意义是解决 AOP 增强对象的原因,存储的是一个 Lambda 表达式(内部类)--> ObjectFactory。
2023-11-10 10:05:18
1241
1
原创 java多线程文件下载器
RandomAccessFile 类的运用HttpURLConnection 类的运用线程池的使用原子类 LongAdder 的运用CountDownLatch 类的运用ScheduledExecutorService 类的运用线程在创建,销毁的过程中会消耗一些资源,为了节省这些开销,jdk 添加了线程池。线程池节省了开销,提高了线程使用的效率。阿里巴巴开发文档中建议在编写多线程程序的时候使用线程池。
2023-11-10 08:16:07
536
2
原创 探讨jdk源码中的二分查找算法返回值巧妙之处
二分查找算法,也称折半查找算法,是一种在有序数组中查找某一特定元素的搜索算法。jdk 中的 Arrays.binarySearch()。未找到目标元素时根据返回值进行数组扩容。jdk 中核心二分查找方法解析。
2023-11-02 00:41:59
322
2
原创 中南林业科技大学javaweb实验报告
其中注册处理页面 treatZhuCe.jsp 负责接收注册页面 zhuce.jsp 传递过来的用户注册信息,并处理信息,根据注册是否成功分别交给注册处理结果页面 zhuCeSuccess.jsp 以及 zhuCeFail.jsp 显示。其中注册处理页面treatZhuCe.jsp负责接收注册页面zhuce.jsp传递过来的用户注册信息,并处理信息,根据注册是否成功分别交给注册处理结果页面zhuCeSuccess.jsp以及zhuCeFail.jsp显示。处理结果交给zhuCeResult.jsp显示。
2023-10-27 03:13:56
3644
3
原创 FutureTask配合Thread实现处理有返回结果的源码、逻辑与架构分析
FutureTask 能够接收 Callable 类型的参数,用来处理有返回结果的情况。FutureTask 类在实例化构造时需要传入一个实现了Callable接口的类,实现 Callable 接口需要重写 call 方法,该方法需要一个返回值,由于 Callable 定义时是以泛型定义返回值,因此我们可以自定义返回值。FutureTask 会将传入的这个 Callable 实现类赋给自己的属性 `private Callable callable;`
2023-10-20 22:01:26
523
1
原创 docker报错问题解决:Error Invalid or corrupt jarfile app.jar
Error: Invalid or corrupt jarfile /app.jar. jar 文件无效或损坏,于是我开始考虑是不是 `-v` 挂载有问题。本地目录或文件必须以 `/` 或 `./` 开头,如果直接以名字开头,会被识别为数据卷名而非本地目录名。在指定 容器内路径 时必须使用绝对路径,invalid mount config for type "bind": invalid mount path: 'app.jar' mount path must be absolute
2023-10-18 19:06:10
2724
原创 流程图规范
端点、中断,进程,判断,文档,流向,数据,联系,从上至下,从左至右的流向顺序,开始符号只能有一个出口,进程符号不做逻辑校验,相同流程图,符号大小应为一致,引用流程,而不是重复绘制,路径符号应尽量避免相互交叉,同一路径,箭头只能有一个,校验说明写在流线上
2023-10-15 20:54:12
1343
原创 natapp内网穿透-将本地运行的程序/服务器通过公网IP供其它人访问
内网穿透,即 NAT(Network Address Translation,网络地址转换)穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。Natapp 提供了跨平台的客户端和服务器端,用户可以通过在客户端配置映射规则,将内部服务映射到公网上的一个临时域名上,从而实现对内部服务的远程访问。在项目开发阶段我们可以把项目部署在公网能访问的云服务器上,也可以使用内网穿透工具来访问我们自己电脑上运行的测试接口。
2023-10-13 19:12:57
2184
原创 Vmware Linux虚拟机安装教程(Centos版)
VMware 版本可能已经发生了变化,可能变成了 17 或者更高,但没关系,步骤是一样的(已实操过)。这个可能你是已经连接成功的,但是我这里没有连接成功,如果你连接成功了,就不用再往后面看了。耐心等待安装即可,在安装过程中电脑屏幕上可能会出现闪烁,是正常现象,不用管。上方),光标所在行的字会变成白色,再回车即可。点击“连接”后,应该会看到右上角有我下图的这个图标,就说明连接成功了。下载完成以后将该文件拷贝到你的一个常用目录,我这里就放到了。查看是否有图标,如果有我下图的这个图标,说明联网成功。
2023-10-13 16:15:10
1599
1
原创 linux后台运行java项目/ jar包:nohup 命令
我们把一个 SpringBoot 工程导出为 jar 包,jar 包上传到阿里云 ECS 服务器上,使用 java -jar xxx-xxx.jar 命令启动这个 SpringBoot 程序。此时我们本地的 xshell 客户端必须一直开着,一旦 xshell 客户端关闭,java -jar xxx-xxx.jar 进程就会被结束,SpringBoot 程序就访问不了了。所以我们希望启动 SpringBoot 的 jar 包之后,对应的进程可以一直运行,不会因为 xshell 客户端关闭而被结束。
2023-10-11 15:07:48
1377
1
原创 2023版IDEA的下载、安装、配置、快捷键、模板、插件与使用
介绍,module创建,常用配置,设置主题,设置窗体及菜单的字体及字体大小,设置编辑区颜色主题,鼠标滚轮修改字体大小,设置鼠标悬浮提示,自动导包功能,忽略大小写提示,设置取消单行显示 tabs 的操作与设置最大打开标签数,字体,注释颜色,自定义文档注释信息,设置快捷键,常用快捷键,实时代码模板,自定义模板,常用模板,创建javaweb项目,idea配置Tomcat,关联数据库,版本控制,断点调试,配置 Maven,取消双击 shift 搜索,后缀补全模板,常用推荐插件,编码规范检查,翻译,代码统计,力扣
2023-10-11 15:02:48
8850
6
原创 服务器与网站部署知识体系目录
服务器全套基础知识:包含基本概念,作用,服务器选择,服务器管理等。域名相关基础知识普及。域名备案流程(个人备案,腾讯云 / 阿里云)。将网站域名访问从http升级到https(腾讯云/阿里云)。docsify快速部署搭建个人知识库(支持本地、服务器、虚拟机运行)。halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx。
2023-10-10 13:36:30
1373
原创 将网站域名访问从http升级到https(腾讯云/阿里云)
服务器安装 docker 与 nginx,免费 SSL 证书申请,https 网站部署,nginx.conf对https的配置,docker安装nginx注意事项,nginx使用https访问需要注意的问题,静态网站的部署。
2023-10-10 13:29:00
6149
4
原创 域名备案流程(个人备案,腾讯云 / 阿里云)
实名认证,网站备案的目的,备案准备的材料,个人备案流程,主办单位信息,个人主体信息,网站信息,接入商核验信息,管局下发备案号
2023-09-26 14:08:58
43400
7
原创 域名相关基础知识普及
域名的概念,顶级域名、二级域名、三级域名的去呗,域名的作用,常见域名类型,推荐的域名,中文域名,域名分配和管理,域名注册,域名多少钱,whois 信息保护,管理域名,域名实名认证,域名所有者信息更换,域名续费,域名到期没续费后果,更换域名服务商,域名解析方式,域名 A 记录 IP 解析,域名 CNAME 解析,域名泛解析,域名邮件 mx 解析,域名解析不生效原因,如何开通企业邮箱
2023-09-26 12:15:37
4669
3
原创 2023 版 QQ 机器人运行部署文档
QQ机器人框架,登录QQ机器人,消息处理,Linux 服务器持续运行 QQ 机器人,将手机与 linux 服务器处于同一网络,socks5,pbrq,pbbot-rq。问题解决:当前设备网络不稳定或处于夏杂网络环境,为了你的帐号安全,建议将两个设备连接同一网络或将被扫描设备连接你的手机热点后,重新扫码登录。
2023-09-25 17:48:29
3592
5
原创 讯飞星火认知大模型Java后端接口
我已经写了一个比较完整的 SpringBoot Demo 项目,为了方便理解对代码做了详细注释,已开源在 GitHub。下载后只需要找到 xfxh-web-simple-demo 模块,在其 application.yml 文件配置你自己的 `APPID`、`APISecret`、`APIKey` 信息,再以 GET 方式访问接口进行测试:http://localhost:8080/test/sendQuestion?question=hello
2023-09-21 23:18:42
9868
110
原创 swing组件通过setBounds设置位置不生效,最后一个加入容器的组件始终居中显示问题分析
因为 BorderLayout 布局是生效的,换句话说,BorderLayout 布局设置优先级高于 setBounds。通过设置 setLayout(null),我们将 JFrame 的布局管理器设置为空,这意味着我们需要手动控制组件的位置和大小,而不是依赖于自动布局。这对于我们在 setBounds() 方法中直接设置组件的位置和大小非常有用。因此,如果我们想让我们的所有组件位置布局生效,或者说是最后一个组件的位置布局生效,就需要移除默认的 BorderLayout 布局管理器。
2023-09-19 02:19:29
1096
2
原创 编程初学者指南(2023版):零基础小白如何学习编程-两万字详述
编程的几个基本概念,学习编程难吗,英语和数学不好可以学编程吗,我应该要学习很多编程语言吗,世界上最好的编程语言是什么,大一上需要去纠结走哪个方向吗,初次刷题没思路没感觉正常吗,如果我在写代码时遇到问题怎么办,学习编程是应该先看书还是先看视频呢,我是非计算机专业可以学好编程吗,我认认真真上好学校的课程就够了吗,关于 C 语言,编程学习的心得分享,程序员成长的三阶段,计算机基础知识,在大学如何学习,编程相关的常见工作岗位
2023-09-11 01:45:37
19529
4
原创 windows磁盘清理
清理 temp 文件,清理系统更新后的旧文件,更改系统默认文件夹路径,软件不要安装在 C 盘,软件生成的资源文件不要放在 C 盘,卸载软件采用正规卸载流程
2023-08-31 00:09:27
795
原创 Java生成二维码(前后端分离项目实战)
zxing,google,qrcode-plugin,普通黑白二维码,带 logo 二维码,彩色二维码,带背景图的黑白二维码,特殊形状的二维码,图片填充二维码
2023-08-29 23:47:12
1921
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人