old wang
搜索文章
首页
= 768 && isOpen) { isOpen = false; setTimeout(() => enableScroll(document.body), 200); }" >
enableScroll(document.body), 200);" x-transition:enter="transition ease duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="transition ease duration-300" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" style=" position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); z-index: 1001; overscroll-behavior: none; " >
enableScroll(document.body), 200)" >
首页
全部
默认分类 (1)
RAG (13)
环境搭建 (3)
GIS (2)
工程实践 (15)
分布式架构 (4)
性能优化 (7)
Redis 大 Key 与多 Key 拆分方案
在 Redis 使用过程中,大 Key 或 Key 数量过多的问题。 常见场景包括: 单个 String 类型 Key 的 Value 很大; Hash、Set、ZSet、List 中存储了过多元素; Redis 集群中存储了上亿个 Key; Bitmap 或 BloomFilter 占用空间过大。
作者:old wang
发布时间:2026-05-23
分类:
性能优化
标签:
#
Redis
MySQL 深分页查询优化:从 17 秒到 300ms 的一次记录
有一张财务流水表,数据量接近千万级,未做分库分表。 原始分页查询使用了 LIMIT,优化前耗时接近 17 秒: 16 s 938 ms 调整 SQL 后,耗时降到 300ms 左右: 347 ms 优化方式并不复杂: 先在子查询中只查主键 ID,再通过主键关联回原表查询完整字段。 也就是把原来的
作者:old wang
发布时间:2026-05-23
分类:
性能优化
Java 双层for循环
在日常开发中,经常会遇到两个集合之间做数据匹配的场景。 比如: 用户列表匹配用户备注; 订单列表匹配支付记录; 商品列表匹配库存信息; 部门列表匹配员工信息; 主表数据匹配明细数据。 很多时候,最直接的写法是双层 for 循环。 数据量小的时候,这种写法问题不明显。 但当数据量变大后,双层循环的性能
作者:old wang
发布时间:2026-05-23
分类:
性能优化
线程池抛了异常怎么处理?
线程池抛了异常怎么处理?只写 try-catch 还不够 在 Java 项目中,线程池是很常见的异步执行工具。 但线程池里的任务一旦抛出异常,处理方式并没有很多人想得那么简单。 尤其是 execute() 和 submit() 两种提交方式,对异常的处理行为完全不同: execute() 提交的任务
作者:old wang
发布时间:2025-05-24
分类:
性能优化
CompletableFuture 异步异常处理记录
在 Java 项目中,CompletableFuture 经常用于异步任务编排。 例如: 异步发送消息; 异步调用第三方接口; 多个任务并行执行; 接口中异步处理非核心逻辑; 聚合多个异步任务结果。 但在使用 CompletableFuture 时,有一个很容易忽略的问题: 异步任务中发生异常,不一
作者:old wang
发布时间:2023-01-23
分类:
性能优化
Spring Boot 批量插入大量数据
Spring Boot 使用 ThreadPoolTaskExecutor 批量插入大量数据 在业务系统中,经常会遇到批量导入数据的场景。 例如: Excel 批量导入; 日志数据入库; 第三方数据同步; 历史数据迁移; 大批量初始化数据。 如果数据量只有几千条,单线程批量插入通常就够了。 但如果数
作者:old wang
发布时间:2022-04-04
分类:
性能优化
Spring Boot 使用 Function 和异步线程池处理列表拆分任务
在业务开发中,经常会遇到批量处理数据的场景。 例如: 批量导入 Excel 数据; 批量调用第三方接口; 批量处理订单; 批量同步用户数据; 大列表分片计算; 批量生成报表数据。 如果直接用单线程遍历整个列表,数据量较大时处理时间会比较长。 一种常见做法是: 将大列表拆分成多个小列表,每个小列表交给
作者:old wang
发布时间:2022-03-28
分类:
性能优化
共 7 篇文章
1
页