自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

旺仔爱编程

一个喜欢记录和编程的小旺仔

  • 博客(100)
  • 资源 (8)
  • 收藏
  • 关注

原创 联合索引列顺序:PostgreSQL 区分度高的列放前面

在PostgreSQL中,联合索引列顺序直接影响查询性能。核心原则:等值条件列优先于范围条件列,区分度高的列放前面。通过COUNT(DISTINCT)量化区分度,结合数据分布确定顺序;首列必须被所有高频查询覆盖,确保最左前缀可用性。错误顺序会导致索引失效、全表扫描。建索引后务必用EXPLAIN (ANALYZE, BUFFERS)验证扫描行数是否显著减少。避免巨型索引与盲目建索引,2~3列最经济高效。

2026-09-22 09:11:43 297

原创 EXPLAIN 执行计划:PostgreSQL 避免全表扫描与索引优化实战

本文详解PostgreSQL查询优化核心——通过EXPLAIN ANALYZE查看执行计划,避免大表全表扫描。强调在WHERE、ORDER BY列建索引,使用复合索引消除Sort,并修正列上函数调用导致的索引失效问题。关键提醒:EXPLAIN ANALYZE会真实执行DML,必须用BEGIN; ... ROLLBACK;包裹以保障线上数据安全。遵循“证据驱动、两手优化、事务保护”原则,实现高效、安全的性能调优。

2026-09-21 09:50:14 245

原创 唯一索引与 NULL 值:PostgreSQL 主键约束与 NULLS NOT DISTINCT

PostgreSQL 唯一索引默认允许多个 NULL 值,因 SQL 标准中 NULL 互不相等。主键约束自动创建唯一 B-tree 索引,唯一约束与唯一索引底层等价。若需“NULL 也唯一”,须使用 PG 15+ 的 NULLS NOT DISTINCT,但需评估数据现状与业务语义。多数场景应采用 NOT NULL UNIQUE 保证唯一性。避免在旧版本使用该语法或冗余建索引。

2026-09-20 08:53:29 309

原创 TABLESPACE 表空间:PostgreSQL 索引与表分离存储的性能优化

PostgreSQL 中通过 TABLESPACE 将索引与表数据分离存储,可实现性能优化:高频索引放 SSD、冷数据存 HDD,提升 IO 效率。但需确保物理介质差异,否则无收益。表空间为集群级对象,备份恢复时需注意 pg_dump 不包含表空间定义,须提前创建或使用 --no-tablespaces。避免在同盘建多表空间、易失设备存放表空间等错误。合理使用可显著优化查询性能,关键口诀:“快盘分离性能佳,备份恢复别忘它”。

2026-09-19 08:51:54 512

原创 CREATE INDEX CONCURRENTLY:线上建索引不阻塞 DML 的代价与坑

摘要(148字): PostgreSQL 大表建索引应必用 CREATE INDEX CONCURRENTLY,避免阻塞 DML。其代价为两次全表扫描、耗时更长及额外资源开销,需在低峰期执行。失败后会残留 INVALID 索引,持续消耗更新性能,必须手动 DROP 后重试。禁止在事务块内使用、同表并发构建或对分区表直接操作。牢记“线上建索引,CONCURRENTLY 不能省;失败留 invalid,DROP 重来才算成”。

2026-09-18 09:02:19 335

原创 字段类型不一致:PostgreSQL 报错与索引失效的第一元凶

PostgreSQL 强类型特性导致字段类型不一致时,会直接报错(如 operator does not exist)或索引失效。核心问题在于表结构与 Java 实体/参数类型未严格对应,如 BIGINT 用 String 绑定、手机号用 Long 存储、时间字段拼接字符串等。此外,索引列上进行 cast、:: 等转换将导致索引无法命中。解决方案:实体字段与数据库类型一一映射,使用正确的 setXxx 方法绑定参数,避免列上类型转换,并通过 EXPLAIN 验证执行计划。牢记口诀:“实体类型对列型,列上转换

2026-09-17 08:44:51 392

原创 复合索引最左前缀原则:PostgreSQL 的 WHERE 为什么必须命中第一列

复合索引需遵循最左前缀原则:查询必须包含第一列,否则无法缩小扫描范围,导致性能退化。PostgreSQL 中,缺首列时索引仍可能被使用,但仅作内部过滤,效率近似全表扫描。建议复合索引列数不超过3个,等值条件前置,范围条件后置,并用 INCLUDE 实现覆盖索引,避免键列膨胀。通过 EXPLAIN ANALYZE 验证 Index Cond 与 Filter 区分,确保索引真实生效。

2026-09-16 11:44:45 203

原创 黑马Java第十一讲笔记—多态&抽象类&接口

黑马Java第十一讲笔记—多态&抽象类&接口

2022-08-29 18:14:48 1145 2

原创 黑马Java第10讲—继承和修饰符

黑马Java第10讲—继承和修饰符

2022-08-27 19:43:58 1136 2

原创 黑马Java笔记第九讲—ArrayList集合和学生管理系统

黑马Java笔记第九讲—ArrayList集合和学生管理系统

2022-08-27 19:38:52 974 1

原创 黑马Java笔记第8讲—常用API

黑马Java笔记第8讲—常用API

2022-08-24 18:53:27 1263 3

原创 黑马Java笔记第七讲—面向对象

黑马Java笔记第七讲—面向对象

2022-08-24 18:49:19 610 1

原创 黑马Java第六讲—基本练习

黑马Java第六讲—基本练习

2022-08-23 20:56:03 1053 1

原创 黑马Java笔记第5讲—方法

黑马Java笔记第5讲—方法

2022-08-23 20:10:17 240 1

原创 黑马java笔记第四讲—数组

黑马java笔记第四讲—数组

2022-08-20 19:25:11 261 1

原创 黑马Java笔记第三讲—switch&循环语句

黑马Java笔记第三讲—switch&循环语句

2022-08-19 17:33:58 292 1

原创 黑马Java笔记第二讲—java基础

黑马Java笔记第二讲—java基础

2022-08-18 20:35:11 871

原创 黑马Java笔记第一讲—java基础

黑马Java笔记第一讲—java基础

2022-08-17 19:53:18 1455 2

原创 带你玩转 Redis 的 键(key)命令

带你玩转 Redis 的 键(key)命令

2022-08-16 19:38:05 1695

原创 带你玩转 Redis 的 SortedSet 数据类型

带你玩转 Redis 的 SortedSet 数据类型

2022-08-15 20:28:13 475

原创 带你玩转Redis 的 Set 数据类型

带你玩转Redis 的 Set 数据类型

2022-08-14 20:44:11 549

原创 带你一起玩转Redis 的 List 数据类型

带你一起玩转Redis 的 List 数据类型

2022-08-13 19:26:36 1340

原创 带你玩转Redis Hash数据类型

带你玩转Redis Hash数据类型

2022-08-12 20:47:04 473

原创 带你玩转Redis 的String 数据类型

带你玩转Redis 的String 数据类型

2022-08-11 22:58:07 374

原创 带你轻松玩转Java继承

带你轻松玩转Java继承

2022-08-10 20:12:58 401

原创 带你轻松玩转Java 异常处理

带你一起玩转Java异常

2022-08-09 20:28:35 580

原创 带你一起玩转Java流

带你一起玩转Java流

2022-08-08 20:59:05 597

原创 带你轻松玩转Java方法

带你轻松玩转Java方法

2022-08-07 20:01:08 184

原创 带你一起玩转—Java 数组

带你玩转Java 数组

2022-08-06 22:45:33 204

原创 8. Java 条件语句

带你一起玩转Java条件语句...

2022-08-05 19:15:48 443 2

原创 7. Java 循环结构

1. Java 循环结构概述 2. while 循环 2.1 while 循环结构简介 2.2 while 循环 语法格式 2.3 while...

2022-08-04 17:21:50 174

原创 6. Java 运算符

带你一起玩转Java 运算符

2022-08-03 12:34:29 205

原创 5. Java 修饰符

带你玩转—— Java 修饰符

2022-08-02 13:06:43 189

原创 4. Java 变量类型

带你一起玩转——Java 变量类型

2022-08-02 10:24:45 169

原创 3. Java 数据类型

带你玩转Java 数据类型,让你快速了解Java 数据类型

2022-07-31 18:20:54 326

原创 2. Java 对象和类

带你一起玩转java的对象和类

2022-07-30 19:08:28 205

原创 1. 带你玩转Java之Java基本概括

带你玩抓Java系列之Java基本概述

2022-07-29 11:56:58 659

原创 Redis缓冲穿透和缓冲击穿工具类的封装

Redis缓冲穿透和缓冲击穿工具类的封装

2022-07-26 23:16:15 260

原创 Redis缓存面临的缓存击穿问题

**缓存击穿问题:**也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。

2022-07-26 23:00:37 340

原创 Redis缓存面临的缓存雪崩问题

缓存雪崩:是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。

2022-07-26 22:34:04 331

Java15的JDK环境

JavaJDK15

2022-03-13

python-3.9的开发环境安装包

这是python-3.9的发开环境安装包,直接是点击安装的

2022-03-13

MySQL8.0的安装包

MySQL8.0的安装包,属于直接安装的,不是zip文件

2022-03-13

Java8JDK开发环境

Java8JDK开发环境

2022-03-13

MySQL5.5的安装包

这里是一键安装到底的安装包,不是文件zip

2022-03-13

apache10.0.5的安装包

这里是一键安装就完事的,不是zip

2022-03-13

Java的注解包,在使用注解的时候导入的jjar包

里边主要是 junit-4.12.jar hamcrest-core-1.3.jar l两个jar包,是使用junit4,单元测试需要导入的包

2022-03-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除