首页 文章 精选 留言 我的

文章列表

共 219840 篇
《Spring Boot + JPA 实战》第10招 别总查完整Entity

《Spring Boot + JPA 实战》第10招 别总查完整Entity

那天周会上,小王把订单列表接口超时的问题摆出来。我是老李,在团队里负责后端性能优化。点开日志一看,一个 /api/orders 列表查询,SQL 拉出来 42 个字段,订单表、用户表、明细表、商品表、地址表全都 join 上。前端只需要订单号、状态、金额、创建时间四个字段,结果网络传输 1.8MB,接口响应 2.4 秒。这问题在列表页、报表和查询接口里非常普...

《Spring Boot + JPA 实战》第11招 深分页为什么慢

《Spring Boot + JPA 实战》第11招 深分页为什么慢

上周凌晨,订单服务告警,SQL 慢查询堆成山。用户只是在管理后台点了最后一个分页按钮,第 50000 页,数据库 CPU 直接飙到 90%。开发第一反应是索引失效,结果 EXPLAIN 一看,索引走得好好的,可查询还是慢。慢在哪?慢在 LIMIT 999980, 20。MySQL 为了扔掉前 999980 行,需要扫描百万级数据,而这只是取 20 条记录。

《Spring Boot + JPA 实战》第13招 事务为什么失效

《Spring Boot + JPA 实战》第13招 事务为什么失效

凌晨两点,运维群弹告警:订单服务数据库连接池耗尽,接口平均响应从 80 毫秒飙到 4 秒,大量下单请求超时。排查发现,一位开发在创建订单的事务里加了一次外部库存预占调用,对端系统抖动,事务一直不提交,连接和锁全部卡住。类似的问题还有很多:有人给方法加上 @Transactional,结果同类方法里内部调用,注解根本不生效;有人把整条下单链路包成一个事务,包含...

《Spring Boot + JPA 实战》第18招 别只用H2测试

《Spring Boot + JPA 实战》第18招 别只用H2测试

我是老李。最近复盘一个线上事故:团队用 Spring Boot + JPA 开发订单服务,本地和 CI 里所有 Repository 测试、Service 测试都跑在 H2 内存库上,结果全绿。发布到 MySQL 8.0 后,建表阶段就出问题,有个时间字段的默认值没生效,接口写入时直接报字段长度超限;还有一个查询在测试环境毫秒级,生产却锁表,拖垮整条链路。大...

《Spring Boot + JPA 实战》第19招 表结构怎么演进

《Spring Boot + JPA 实战》第19招 表结构怎么演进

凌晨两点,订单表突然卡死,几十个连接在等待元数据锁,业务完全不可用。排查发现,发布时 Hibernate 自动改表,给一张两千万行的表加索引,还顺手调整了另一个字段类型。我是老李,经历过这种场面。开发环境里 ddl-auto=update 确实方便,实体类加个字段,重启就自动加列;改个注解,索引也自动修。但这种便利一旦带到生产,就变成了事故。

《Spring Boot + JPA 实战》第20招 JPA线上怎么排障

《Spring Boot + JPA 实战》第20招 JPA线上怎么排障

凌晨两点,告警群突然炸了:订单接口大面积超时,用户投诉说点了几次支付都没反应。我们第一反应是看数据库,结果 MySQL CPU 只有 20%,活跃连接数也不高。很多人到这里会松一口气,觉得数据库没问题。可真相是,接口线程数已经打满,HikariCP 连接池排队超过 200。我是老李,今天就把这次生产 JPA 故障的排查过程完整拆开。为什么现在要讲?因为 Sp...

《Spring Boot + JPA 实战》第21招 AI写代码也要审SQL

《Spring Boot + JPA 实战》第21招 AI写代码也要审SQL

凌晨两点,手机报警第三次响起:订单服务 P99 飙到 4.6 秒,数据库 CPU 打满。我打开慢日志,一条看起来普通的订单搜索 SQL 正在对 300 万行主表做全表扫描,还附带 60 多条重复查询。我是老李。这行干了十几年 Java,最近团队把一部分数据访问层交给 AI 生成,效率确实上来了,可这次差点把生产打挂。

《Spring Boot + JPA 实战》第22招 JPA遇上向量检索

《Spring Boot + JPA 实战》第22招 JPA遇上向量检索

我是老李,后端团队最近在做商品搜索。以前用户搜“冰箱”,条件查询按名称、分类、价格过滤,很丝滑。后来用户输入“适合小户型的静音冰箱”,like 和属性条件完全失效:没有“小户型”字段,没有“静音”标签,也没有精确型号。运营希望搜索能理解语义,而不是只做关键词命中。与此同时,团队已经用 Embedding 给商品描述生成了向量,但问题来了:现有 Spring ...

《Spring Boot + JPA 实战》第23招 什么时候别用JPA

《Spring Boot + JPA 实战》第23招 什么时候别用JPA

上周,运营同事在群里贴了一张截图:订单统计报表接口耗时 43 秒,页面一直转圈。我点开日志一看,这个接口为了拿到按天分组的几条汇总数据,硬是用 JPA 把最近 30 天所有订单实体都查出来,在内存里用 Java 流做分组求和。我是老李,做后端十几年,这种场景不是第一次见。团队当初为了“技术统一”,规定所有数据访问必须走 JPA,结果复杂查询越写越别扭,报表越...

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册