- 博客(23)
- 收藏
- 关注
原创 为什么MySQL不推荐使用uuid或者雪花id作为主键
当数据量庞大时,UUID会显著增加存储空间占用,尤其是在有多个二级索引的情况下(每个二级索引都会存储主键值)。:虽然趋势递增,但在分布式系统中,不同节点生成的ID可能存在时间戳差异,导致局部无序,仍可能引发页分裂。若主键较大(如UUID),所有二级索引的叶子节点都会存储主键值,导致索引体积膨胀,进一步影响查询性能。:完全随机的主键值会导致新数据插入到索引中间,频繁触发页分裂和重组,增加I/O开销,降低写入性能。:在分布式系统中,雪花ID是较好的折中选择,但需确保时钟同步,并评估局部无序对插入性能的影响。
2025-04-02 17:00:20
307
原创 MySQL GROUP BY分组获取非聚合列值方法
在使用MySQL进行数据库查询时,如果你需要对数据按照某个或某些列进行分组(GROUP BY。
2025-04-01 16:26:27
191
原创 Java中PO BO VO DTO DO概念解析
对象层级核心职责典型场景PO数据访问层(DAO)数据库映射MyBatis/Hibernate操作数据库DO领域层(Domain)封装领域模型和业务规则DDD中的实体对象BO业务逻辑层(Service)复杂业务逻辑聚合跨多个PO/DO的业务操作DTO传输层跨层/跨服务数据传输Controller-Service交互VO展示层(View)适配前端展示需求返回给前端的JSON数据。
2025-03-31 09:00:00
1337
原创 MySQL和Redis之间的数据一致性
MySQL和Redis之间的数据一致性是一个复杂的问题,因为两者在设计上有着不同的目标和特性。MySQL是一个关系型数据库,提供了强一致性的保证,而Redis是一个内存数据库,通常用于缓存加速数据访问。由于Redis的缓存特性,它并不自然地支持与MySQL之间的强一致性。因此,要保持两者的数据一致性,通常需要采用一些策略和方法。
2025-03-29 11:56:12
558
原创 简单描述Redis持久化
由了AOF重写缓存区的存在,当子进程完成AOF重写工作之后,它会向父进程发送一个信号,父进程在接到该信号之后,会调用处理函数,将AOF重写缓冲区中的所有内容写入到新AOF文件中(就是重写后的文件),这样重写后数据库状态就和服务器当前的数据库状态一致了。通过该功能,Redis 服务器可以创建一个新的 AOF 文件来替代现有的 AOF 文件,新旧两个 AOF 文件所保存的数据库状态相同,但新 AOF 文件不会包含任何浪费空间的冗余命令,所以新 AOF 文件的体积通常会比旧 AOF 文件的体积要小得多。
2025-03-29 10:56:14
1150
原创 FeignClient Not Found错误原因
Interface接口中@FeignClient注解的path属性路径内容要和Controller实现类@RequestMapping注解路径内容一致。首先,确保你的项目中已经添加了Feign的依赖。如果你使用的是Maven,可以在。注解来指定远程服务的名称。例如,如果你有一个名为。注解来启用Feign客户端。在你的主类或者配置类上添加。定义一个接口,并使用。
2025-02-18 14:47:30
261
原创 Mysql数据库中Where 1=1 和 1=0的作用
1.1.where 1=1 是为True的语句,语句语法正确,能够被正确执行,它的作用相当于:”select * from table”,即返回表中所有数据。1.2.在多条件查询中,减少if判断 只是为了满足多条件查询页面中不确定的各种因素而采用的一种构造一条正确能运行的动态SQL语句的一种方法。
2024-12-19 16:33:53
312
原创 Hutool HttpRequest上传文件
注意:MultipartFile文件需要转换成InputStreamResource才能上传成功。log.info("文件流转换异常:{}", e.getMessage());.set("请求获取zoho上传接口", fileUrl).set("请求获取zoho上传接口", fileUrl).set("返回接口", uploadJson);.set("返回接口", uploadJson);// 获取 token。// 获取 token。
2024-12-13 15:05:28
1928
原创 Hutool JSON序列化过滤属性为null问题
JSONUtil.toJsonStr(tmp)改成 JSONUtil.toJsonStr(JSONUtil.parseObj(tmp, false))
2024-12-12 17:58:20
522
原创 swagger方法请求参数与实体中参数显示不一致原因分析
项目集成swagger之后,发现有个接口请求跟接口实体对应不上,把其他接口的请求参数放到当前这个请求上了。就是让其命名变成不一样即可。修改其中一个实体@ApiModel命名。有两个实体类的@ApiModel命名重复了。
2024-11-05 14:26:06
346
原创 Java:将List切割为多个指定长度的List
比如,业务需要处理10000个订单的信息,需要调用外部接口,但接口请求入参限制了参数IDS个数不能超1000个,那么就需要将 10000个订单拆分成 10组数据,分组处理。2.通过 Guava实现(Guava是一种基于开源的。在实现业务功能时,难免会遇到大数据量处理的情况。
2024-10-26 17:08:28
656
原创 Java对比两个Map中差异
System.out.println("map1多出的键值对:" + entry.getKey() + "=" + entry.getValue());System.out.println("map2多出的键值对:" + entry.getKey() + "=" + entry.getValue());System.out.println("公用的键值对:" + entry.getKey() + "=" + entry.getValue());
2024-08-14 15:41:12
879
原创 HTML生成PDF文件
/ 解决中文乱码问题,fontPath为中文字体地址。paramsMap.put("invoice", "发票");log.error("生成失败", e);* 存放文件模板的地址。//模板文件夹相对路径。* 生成pdf文件工具类。
2024-07-15 14:46:27
324
原创 FreeMarker模板转PDF文件
/ 创建一个FreeMarker实例, 负责管理FreeMarker模板的Configuration实例。// 设置 css中 的字体样式(暂时仅支持宋体和黑体)* @param uploadPath 文件上传/生成目录。paramsMap.put("invoice", "发票");// 指定FreeMarker模板文件的位置。// 获取模板文件 template.ftl。// 把html代码传入渲染器中。// 将数据输出到html中。// 设置模板的编码格式。//模板文件夹相对路径。
2024-07-13 15:00:24
489
原创 Cannot resolve .....报错问题解决
当导入maven管理的项目后,maven进行自动的下载和解析依赖,有时候因为网络问题,等待太久没下载好,我们就关闭了IDEA,再次打开IDEA时就会报错某某依赖无法解析:Cannot resolve …,是因为我们下载到一半就关闭了IDEA,导致下载的内容不全,所以无法解析.然后再回idea中点击maven的重新导入按钮,就会重新下载解析了。此时的解决方法是复制报错依赖的版本号前的那段依赖名称:如下图。切换到该文件夹,找到报错文件夹,就能看到待报错的依赖:如下图。找到包下载到那个文件夹中:如下图。
2023-11-17 16:07:50
4114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人