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}

)

```

相关推荐
JiaHao汤3 小时前
MySQL SQL 性能优化实战指南
sql·mysql·性能优化
一只叫煤球的猫18 小时前
ThreadForge v1.1.0 发布:让 Java 并发更接近 Go 的开发体验
java·后端·性能优化
PineappleCoder19 小时前
告别“幻影坦克”:手把手教你丝滑规避布局抖动,让页面渲染快如闪电!
前端·性能优化
xcLeigh1 天前
IoTDB 性能优化双杀:查询分析与负载均衡实战指南
性能优化·负载均衡·时序数据库·iotdb
山峰哥1 天前
数据库工程中的SQL调优实践:从索引策略到查询优化的深度探索
服务器·数据库·sql·性能优化·编辑器
阿林来了1 天前
Flutter三方库适配OpenHarmony【flutter_speech】— 性能优化实践
flutter·性能优化
玩具猴_wjh2 天前
高并发系统性能优化
性能优化
码云数智-大飞2 天前
前端性能优化全链路实战:从加载速度到渲染效率的极致提速方案
前端·性能优化
叫我一声阿雷吧2 天前
JS实现无限滚动加载列表|适配多端+性能优化【附完整可复用源码】
开发语言·javascript·性能优化
yzs872 天前
OLAP数据库HashJoin性能优化揭秘
数据库·算法·性能优化·哈希算法