java程序性能优化篇

一.服务接口业务SQL开发原则

1.**能少 JOIN 就少 JOIN** | 只在实际用到该表字段做筛选或展示时才 JOIN,否则不 JOIN

  1. **先过滤再关联** | 尽量在单表上先完成过滤、排序、分页,再对外做关联,避免"全表 JOIN 后再 LIMIT"

3.**权限/存在性用 EXISTS** | 判断"是否有权限""是否在某个集合"时,优先用 EXISTS + 索引,少用 `IN (子查询)`

4.**COUNT 与 LIST 同源** | 分页的 count 和 list 的过滤条件、JOIN 策略要一致,且 count 尽量更轻(少 JOIN、少排序)

count 只关心"符合条件的行数",不关心其它表的展示字段。若 count 和 list 用同一套 SQL(含多表 JOIN),会多做一次大结果集的 JOIN 和排序,非常浪费。

5.范围过滤:用 EXISTS 替代 IN (子查询)

不推荐:IN (子查询) 易产生大结果集

and dataset.id in (select dataset_id from test where ex_account = #{params.exAccount})

-- 推荐:EXISTS,便于走索引

and exists (

select 1 from test p

where p.dataset_id = dataset.id and p.ex_account = #{params.exAccount}

)

```

相关推荐
卓码软件测评6 小时前
第三方软件课题验收测试【使用Docker容器部署LoadRunner负载生成器以实现弹性压测 】
测试工具·docker·容器·性能优化·单元测试·测试用例
Brduino脑机接口技术答疑7 小时前
脑机接口数据处理连载(十四) 实时数据处理:低延迟算法设计与性能优化
算法·性能优化·数据处理·脑机接口
码农很忙9 小时前
多线程的12种核心用途解析:从性能优化到系统革新
性能优化
老百姓懂点AI9 小时前
[性能优化] 击穿Python GIL瓶颈:智能体来了(西南总部)AI调度官的Rust重构实践与AI agent指挥官的高并发推理
人工智能·python·性能优化
Fgaoxing19 小时前
Go反射:性能瓶颈与零拷贝优化
性能优化·golang·反射
我真的是大笨蛋19 小时前
ACID底层实现:MySQL事务机制的深度解析
java·数据库·sql·mysql·性能优化
三水不滴19 小时前
从原理、场景深度分析Redis的分布式限流机制,根据不同场景设计合适的解决方案
数据库·经验分享·redis·笔记·分布式·缓存·性能优化
三水不滴1 天前
从原理到性能优化深度分析MySQL的order by处理
数据库·经验分享·笔记·mysql·性能优化
芯片SIPI设计1 天前
高带宽存储器与先进接口总线在RDL设计技术中的电气性能优化
性能优化