huangyujun9920123
码龄7年
求更新 关注
提问 私信
  • 博客:14,483
    社区:1
    14,484
    总访问量
  • 17
    原创
  • 200
    粉丝
  • 230
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
目前就职: 数字马力(杭州)信息技术有限公司
加入CSDN时间: 2018-03-29
博客简介:

huangyujun9920123的博客

查看详细资料
个人成就
  • 获得261次点赞
  • 内容获得0次评论
  • 获得207次收藏
  • 博客总排名57,370名
  • 原力等级
    原力等级
    3
    原力分
    245
    本月获得
    2
创作历程
  • 4篇
    2025年
  • 13篇
    2024年
成就勋章
TA的专栏
  • SpringAI学习
    1篇
  • 项目实践Tips
    1篇
  • 设计模式杂谈
    1篇
  • Redis
    1篇
  • 答疑专栏
    1篇
  • MySql实战
    3篇

TA关注的专栏 11

TA关注的收藏夹 0

TA关注的社区 7

TA参与的活动 0

兴趣领域 设置
  • Java
    springmavenjava-rabbitmq
  • 后端
    sqlspring boot架构分布式中间件spring cloud
  • 开源
    开源
创作活动更多

新星杯·14天创作挑战营·第13期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛!注: 1、参赛者可以进入活动群进行交流、互相鼓励与支持(开卷),虚竹哥会分享创作心得和涨粉心得,答疑及活动群请见:https://bbs.csdn.net/topics/619781944 【进活动群,得奖概率会更大,因为有辅导】 2、文章质量分查询:https://www.csdn.net/qc

76人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

MYSQL实践-递归查询

MySQL 8.0+支持递归查询实现部门层级关系查询。通过创建部门表(含id、name和parent_id字段),可使用WITH RECURSIVE实现两种查询:1)向上查询父级部门(从子部门递归查询到上级);2)向下查询子级部门(从父部门递归查询到下级)。两种查询均为单表操作,若需联表查询建议先完成递归操作再联表以提高效率。本文提供了完整的SQL示例代码,包括表结构和递归查询实现。
原创
博文更新于 2025.06.06 ·
216 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Spring AI学习一

摘要:Spring官方推出SpringAI框架,支持SpringBoot 3.x和JDK17+。文章介绍了如何搭建Maven项目,包括引入SpringBoot、SpringAI及OpenAI相关依赖的配置步骤。通过application.properties设置API密钥、基地址和模型参数,并创建了一个简单的DemoController示例,展示了与DeepSeek模型的集成。该示例实现了问答功能,验证了SpringAI框架的基本使用方式。
原创
博文更新于 2025.06.05 ·
612 阅读 ·
5 点赞 ·
0 评论 ·
4 收藏

优雅的系统重试

本文探讨了如何优雅实现方法重试机制。程序员A起初采用固定次数的循环重试方式,但发现多个接口存在重复代码。通过分析将重试框架与业务逻辑解耦,最终构建了可复用的重试策略类。该方案使用Supplier函数式接口接收业务逻辑,实现了:1) 统一的最大重试次数控制;2) 状态码判断;3) 异常处理。这种设计既消除了代码冗余,又通过lambda表达式灵活支持不同业务逻辑,为类似场景提供了可扩展的解决方案。
原创
博文更新于 2025.06.05 ·
978 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

设计模式杂谈-模板设计模式

用项目实战带你为你揭开设计模式神秘面纱,设计模式不再是躺在书本里晦涩难懂的概念。
原创
博文更新于 2025.06.04 ·
1006 阅读 ·
10 点赞 ·
0 评论 ·
5 收藏

Redis生产实践

集群架构下,产生访问倾斜,即某个数据分片被大量访问,而其他数据分片处于空闲状态,可能引起该数据分片的连接数被耗尽,新的连接建立请求被拒绝等问题。热Key的请求压力数量超出Redis的承受能力易造成缓存击穿,即大量请求将被直接指向后端的存储层,导致存储访问量激增甚至宕机,从而影响其他业务。Key中成员的数据量过大:一个Hash类型的Key,它的成员数量虽然只有2,000个但这些成员的Value(值)总大小为100 MB。Key本身的数据量过大:一个String类型的Key,它的值为5 MB。
原创
博文更新于 2024.09.29 ·
388 阅读 ·
8 点赞 ·
0 评论 ·
5 收藏

“order by”是怎么工作的?

但这个算法有一个问题,就是如果查询要返回的字段很多的话,那么sort_buffer里面要放的字段数太多,这样内存里能够同时放下的行数很少,要分成很多个临时文件,排序的性能会很差。全字段排序定义:全字段排序通常是指在执行ORDER BY操作时,如果无法使用索引进行排序(例如,排序依据包含了未建立合适索引的列,或者排序涉及多个索引无法合并使用时),MySQL需要将满足条件的行的相关信息读入到sort_buffer中进行排序。新的算法放入sort_buffer的字段,只有要排序的列(即name字段)和主键id。
原创
博文更新于 2024.09.29 ·
875 阅读 ·
31 点赞 ·
0 评论 ·
20 收藏

答疑第一弹

binlog(归档日志)和redo log(重做日志)配合崩溃恢复的时候,用的是反证法,说明了如果没有两阶段提交,会导致MySQL出现主备数据不一致等问题。在两阶段提交的不同瞬间,MySQL如果发生异常重启,是怎么保证数据完整性的?我再放一次两阶段提交的图,方便你学习下面的内容。接下来,我们就一起分析一下在两阶段提交的不同时刻,MySQL异常重启会出现什么现象。
原创
博文更新于 2024.09.24 ·
294 阅读 ·
5 点赞 ·
0 评论 ·
4 收藏

count(*)这么慢,我该怎么办?

你首先要明确的是,在不同的MySQL引擎中,count(*)有不同的实现方式。MyISAM引擎把一个表的总行数存在了磁盘上,因此执行count(*)的时候会直接返回这个数,效率很高;而InnoDB引擎就麻烦了,它执行count(*)的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。这里需要注意的是,我们在这篇文章里讨论的是没有过滤条件的count(*),如果加了where 条件的话,MyISAM表也是不能返回得这么快的。那为什么InnoDB不跟MyISAM一样,也把数字存起来呢?
原创
博文更新于 2024.09.24 ·
1829 阅读 ·
17 点赞 ·
0 评论 ·
30 收藏

为什么表数据删掉一半,表文件大小不变?

在MySQL 8.0版本以前,表结构是存在以.frm为后缀的文件里。而MySQL 8.0版本,则已经允许把表结构定义放在系统数据表中了。因为表结构定义占用的空间很小,所以我们今天主要讨论的是表数据。接下来,我会先和你说明为什么简单地删除表数据达不到表空间回收的效果,然后再和你介绍正确回收空间的方法。
原创
博文更新于 2024.09.24 ·
1025 阅读 ·
29 点赞 ·
0 评论 ·
11 收藏

为什么MySql会抖一下

InnoDB在处理更新语句的时候,只做了写日志这一个磁盘操作。这个日志叫作redo log(重做日志),也就是《孔乙己》里咸亨酒店掌柜用来记账的粉板,在更新内存写完redo log后,就返回给客户端,本次更新成功。做下类比的话,掌柜记账的账本是数据文件,记账用的粉板是日志文件(redo log),掌柜的记忆就是内存。掌柜总要找时间把账本更新一下,这对应的就是把内存里的数据写入磁盘的过程,术语就是flush。在这个flush操作执行之前,孔乙己的赊账总额,其实跟掌柜手中账本里面的记录是不一致的。
原创
博文更新于 2024.09.20 ·
737 阅读 ·
11 点赞 ·
0 评论 ·
8 收藏

怎么给字符串字段加索引

创建索引时,优先选择区分度大的字段或者字段前缀,在满足区分度的条件下,选择长度最短的字段。
原创
博文更新于 2024.09.20 ·
1697 阅读 ·
59 点赞 ·
0 评论 ·
50 收藏

实战-第三弹

主键索引上存储的是磁盘上数据的地址,非主键索引上存储的是主键ID,对于非主键索引,当我们要查询的字段很多,仅仅依靠索引字段无法满足查询要求的时候,就会涉及到一个回表的操作。有了上述知识,我们就能很快回答出来索引c,a是多余的,我们通过索引c就可以定位到数据的主键索引,主键索引a,b中又是按照a,b字段进行排序的,因此c,a索引是多余的。我们在创建表geek的时候创建了4个索引,分别是主键索引,索引c、ca、cb。主键的作用是存储数据,非主键索引索引的作用是加快查询速度。
原创
博文更新于 2024.09.18 ·
194 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

实战-第二弹

重建索引k的做法是合理的,可以达到省空间的目的。但是,重建主键的过程不合理。不论是删除主键还是创建主键,都会将整个表重建。所以连着执行这两个语句的话,第一个语句就白做了。这两种方式,你们觉得哪种更合理呢。
原创
博文更新于 2024.09.18 ·
180 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

实战第一弹

肯定是会报“不存在这个列”的错误: “Unknown column ‘k’ in ‘where clause’”。经过上述知识的复习,我们能很快的定位出来这个报错信息是在解析器阶段报出来的。当我们在执行SQL语句select * from T where k=1。回答这个问题之前,先熟悉一下MySql的执行流程。这个错误是在哪个阶段报出来的呢?
原创
博文更新于 2024.09.18 ·
443 阅读 ·
5 点赞 ·
0 评论 ·
0 收藏

MySQL为什么有时候会选错索引?

不知道你有没有碰到过这种情况,一条本来可以执行得很快的语句,却由于MySQL选错了索引,而导致执行速度变得很慢?我们一起来看一个例子吧。然后,我们往表t中插入10万行记录,取值按整数递增,即:(1,1,1),(2,2,2),(3,3,3) 直到(100000,100000,100000)。接下来,我们分析一条SQL语句你一定会说,这个语句还用分析吗,很简单呀,a上有索引,肯定是要使用索引a的。你说得没错,图1显示的就是使用explain命令看到的这条语句的执行情况。
原创
博文更新于 2024.09.18 ·
964 阅读 ·
22 点赞 ·
0 评论 ·
9 收藏

唯一索引和普通索引如何选择

假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似这样的SQL语句:所以,你一定会考虑在id_card字段上建索引。由于身份证号字段比较大,我不建议你把身份证号当做主键,那么现在你有两个选择,要么给id_card字段创建唯一索引,要么创建一个普通索引。如果业务代码已经保证了不会写入重复的身份证号,那么这两个选择逻辑上都是正确的。现在我要问你的是,从性能的角度考虑,你选择唯一索引还是普通索引呢?
原创
博文更新于 2024.09.14 ·
1009 阅读 ·
26 点赞 ·
0 评论 ·
26 收藏

MySql中的锁

命令:flush [表名] with read lock。锁定范围:整个数据库实例。使用场景:做整个库的逻辑备份。
原创
博文更新于 2024.09.14 ·
2035 阅读 ·
28 点赞 ·
1 评论 ·
35 收藏
加载更多