
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
这个类不是官方类,是你根据业务自己写的,用来接收上层传来的条件。它就是个普通 POJO,字段全部设计成「可空」,为空表示「这个条件不参与筛选」。@Data// 精确匹配,可空// in 查询,可空// 范围下限,可空// 范围上限,可空// 全文搜索关键字,可空// 日期区间,可空// 排序与分页(放这里,最后组装 SearchRequest 时用)「条件字段」和「排序分页字段」都放这个 DTO

docker 安装nginx

SpringBoot数据库同步 Elasticsearch 性能优化

PostgreSQL 使用 VALUES() 函数生成数据临时表

同事问 void 方法前加泛型意义,为什么有时候可以加,有时候就不允许加呢?

判断数据是否存在还在习惯使用 HashMap?不妨试试 HashSet!

- 第一步:找出阻塞方 查看谁在阻塞我的 ALTERSELECTblocking.pid AS 阻塞方PID,blocking.query AS 阻塞方SQL,blocking.state AS 阻塞方状态,blocked.pid AS 被阻塞PID,blocked.query AS 被阻塞SQL,now() - blocking.query_start AS 阻塞持续时长-- 第二步:干掉阻塞方

BRIN 的黄金场景 = 超大表 + 数据按时间/自增顺序写入 + 以时间范围查询为主。满足这三点,BRIN 能用不到 B+Tree 1% 的索引空间,达到接近甚至更好的查询性能。

凡是业务上需要"保留 NULL"或"排除 NULL"的场景,必须用IS NULL显式处理,绝不能依赖三值逻辑的副作用。✅ 显式优于隐式 —— 意图要写清楚,不要靠"副作用"✅ 先查 NULL 分布 —— 动手写条件前,先确认字段是否可空✅ UNKNOWN ≠ FALSE —— NULL 参与运算结果是 UNKNOWN,WHERE 会过滤它。









