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}

)

```

相关推荐
Beginner x_u1 天前
前端八股整理(工程化 01)|Git 常见命令、rebase/merge、pull/fetch 与前端性能优化
前端·性能优化·git 常见命令
南村群童欺我老无力.1 天前
鸿蒙ForEach渲染列表的唯一性约束与性能优化
华为·性能优化·harmonyos
CSharp精选营1 天前
.NET 11 Preview 3 发布:C# 15 union 类型终补齐,Kestrel 暴增 40%
云原生·性能优化·ai开发·.net11·csharp15
2501_916008891 天前
深入解析iOS应用启动性能优化策略与实践
android·ios·性能优化·小程序·uni-app·cocoa·iphone
子牙老师2 天前
软件虚拟化 vs 硬件虚拟化
linux·性能优化·云计算
一只fish2 天前
SQL 性能优化实战:从入门到极致的七重境界
数据库·sql·性能优化
kyriewen2 天前
React性能优化:从“卡成狗”到“丝般顺滑”的5个秘诀
前端·react.js·性能优化
ZHOUPUYU2 天前
PHP性能优化实战:提升你的应用速度
android·性能优化·php
RoboWizard2 天前
移动固态硬盘摔了一下后无法识别,数据还能恢复吗?
大数据·人工智能·数码相机·智能手机·性能优化·无人机
CDN3602 天前
2026年Web性能优化实测:360CDN如何通过“时效性”与“地域性”双杀提升排名?
前端·性能优化