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}

)

```

相关推荐
洞见前行10 小时前
Android 渲染优化实战:从看懂 Overdraw 到用 ConstraintLayout 一套布局适配所有屏幕
性能优化
敖行客Allthinker10 小时前
祖传老代码重构:揪出假分页与N+1查询,用最小代价完成接口性能优化
性能优化
承渊政道11 小时前
从设备数据到AI洞察:时序数据的多模融合实践
数据库·人工智能·性能优化·金仓数据库·多模融合
小林ixn21 小时前
深入 React useState:从闭包陷阱到性能优化的完整指南
react.js·性能优化
jieyucx1 天前
Nuxt4阶段五:渲染模式与性能优化
性能优化·vue·nuxt
谷无姜1 天前
为什么你的性能优化无效?可能是"木桶效应"在作祟
前端·性能优化
爱喝水的鱼丶1 天前
SAP-ABAP:ALV上线前测试 Checklist——保障报表生产环境稳定运行
性能优化·sap·abap·开发交流·交流学习
FrameNotWork2 天前
组件冻结与按需加载:HarmonyOS 6.0 性能优化的核心手段
华为·性能优化·harmonyos
AI人工智能+电脑小能手2 天前
【大白话说Java面试题 第188题】【08_Kafka篇】第4题:Kafka 大量消息积压时该如何处理?
java·性能优化·kafka·故障排查·消息积压
不是光头 强2 天前
接口性能优化报告
网络协议·性能优化·rpc