文章分类 -  DB-PostgreSQL

PostgreSQL- index - 索引使用监控
摘要:1. 索引年龄问题的本质 1.1 为什么索引年龄不影响数据库健康? -- 索引的relfrozenxid年龄不会导致事务ID回卷 -- 只有表的relfrozenxid和数据库的datfrozenxid才影响事务ID回卷 -- 验证:检查这些索引对应的主表年龄 SELECT n.nspname as 阅读全文
posted @ 2025-10-11 16:16 xibuhaohao 阅读(1) 评论(0) 推荐(0)
PostgreSQL-XID: XID年龄机制详解
摘要:1. PostgreSQL XID年龄机制详解 1.1 XID(事务ID)基础 -- PostgreSQL使用32位整数存储事务ID,范围约21亿 -- XID从3开始(1和2是保留的),理论最大值:2^31 - 1 = 2147483647 SELECT 2^31 - 1 as max_xid; 阅读全文
posted @ 2025-10-11 15:47 xibuhaohao 阅读(3) 评论(0) 推荐(0)
PostgreSQL-插件- pgvector 在商超搜索场景的应用方案(附 Python 实现)
摘要:一、方案总览 1. 核心目标 解决商超商品搜索的语义匹配不足与人工干预缺失两大痛点,弥补 Elasticsearch(ES)在语义理解上的局限,实现: 语义相似排序(如搜 “西蓝花” 时,按 “有机西蓝花→普通西蓝花→有机花菜→普通花菜” 优先级排序); 人工自定义关联(如 “大料” 强制关联 “花 阅读全文
posted @ 2025-09-10 16:40 xibuhaohao 阅读(23) 评论(0) 推荐(0)
PostgreSQL-插件- pg_mooncake
摘要:1 安装环境 操作系统 Rocky Linux release 8.10 (Green Obsidian) PG PostgreSQL-16 2 安装依赖 2.1 cmake 安装或升级 yum install -y cmake3 ln -s /usr/bin/cmake3 /usr/bin/cma 阅读全文
posted @ 2025-09-05 09:19 xibuhaohao 阅读(45) 评论(0) 推荐(0)
Postgresql-插件-pg_duckdb 安装部署测试
摘要:1、需要安装 postgresql15-devel rpm -ivh postgresql15-devel-15.7-1PGDG.rhel7.x86_64.rpm --nodeps 2、下载依赖包 yum install -y gcc gcc-c++ make cmake git 3、下载 [roo 阅读全文
posted @ 2025-09-03 20:55 xibuhaohao 阅读(78) 评论(0) 推荐(0)
Postgresql-SQL-优化:避免自关联-使用分析函数高效获取每组最新记录
摘要:测试环境搭建(Oracle & PostgreSQL通用) 回到顶部 1. 创建测试表 1.1 新建表 -- 表1:主数据表(商品服务表) CREATE TABLE table_1 ( col_1 VARCHAR2(50), -- 商品类别 col_2 VARCHAR2(50), -- 商品子类 c 阅读全文
posted @ 2025-07-18 17:36 xibuhaohao 阅读(12) 评论(0) 推荐(0)
Oracle-SQL-优化:NULL 空值优化
摘要:在Oracle、PostgreSQL(PG)和MySQL中,NULL值是否被索引取决于数据库类型、索引类型及具体设计。以下是综合分析: 📊 1. Oracle 的 NULL 值索引规则 单列索引: 若列包含 NULL,默认不记录到B树索引中(即 WHERE col IS NULL 无法走索引)13 阅读全文
posted @ 2025-07-18 17:05 xibuhaohao 阅读(28) 评论(0) 推荐(0)
MySQL-SQL-优化:in 、not in 、exists 、not exists 都优化改写为join 形式
摘要:以下是在商超环境(商品表 products,销售表 sales)中,将 IN、NOT IN、EXISTS、NOT EXISTS 优化改写为 JOIN 形式的完整方案,包含空值处理和验证测试: 1 优化改写方案汇总表 1.1 join汇总 原查询类型改写方案空值处理执行计划优化性能对比 IN 内连接 阅读全文
posted @ 2025-07-18 16:08 xibuhaohao 阅读(16) 评论(0) 推荐(0)
PostgreSQL- index - 功能性索引
摘要:PostgreSQL 中基于创建和使用方式划分的索引策略:部分索引 (Partial Index)、覆盖索引 (Covering Index / INCLUDE)、表达式索引 (Expression Index / Functional Index) 以及 分区索引 (Partitioned Ind 阅读全文
posted @ 2025-07-03 14:25 xibuhaohao 阅读(18) 评论(0) 推荐(0)
PostgreSQL- index - 索引类型详解(Hash、B-tree、GiST、SP-GiST、GIN、BRIN)
摘要:详细梳理一下 PostgreSQL 中这六种核心索引类型(Hash、B-tree、GiST、SP-GiST、GIN、BRIN)的特性、区别以及适用场景。选择正确的索引对于数据库性能至关重要。 1 核心概览 特性HashB-treeGiSTSP-GiSTGINBRIN 核心原理 哈希表 (键->行指针 阅读全文
posted @ 2025-07-03 13:44 xibuhaohao 阅读(279) 评论(0) 推荐(0)
Postgresql-SQL-优化:SQL join 控制
摘要:🔧 1 扫描方式控制参数 ​​参数名​​​​作用​​​​默认值​​ enable_seqscan 控制是否允许​​全表顺序扫描​​(禁用后优化器优先选索引,但无法完全禁止全表扫描) on enable_indexscan 控制是否允许​​索引扫描​​ on enable_bitmapscan 控制 阅读全文
posted @ 2025-06-10 10:21 xibuhaohao 阅读(48) 评论(0) 推荐(0)
Postgresql-SQL-优化:递归、子查询、not in 优化
摘要:1 背景 有一个这样的场景,一张小表A,里面存储了一些ID,大约几百个。 (比如说巡逻车辆ID,环卫车辆的ID,公交车,微公交的ID 比如商场环境,记录商品信息系的A表与商品交易流水的B表)。 另外有一张日志表B,每条记录中的ID是来自前面那张小表的,但不是每个ID都出现在这张日志表中,比如说一天可 阅读全文
posted @ 2025-06-09 16:50 xibuhaohao 阅读(34) 评论(0) 推荐(0)
Postgresql-SQL-优化:三种join形式
摘要:1 连接形式 在 PostgreSQL 中,优化器主要支持三种基本的表连接(JOIN)算法,每种都有对应的控制参数。您提到的 enable_nestloop 是控制嵌套循环连接的参数,以下是完整的参数列表及其对应的 JOIN 类型: 1. 嵌套循环连接 (Nested Loop Join) 控制参数 阅读全文
posted @ 2025-05-29 17:56 xibuhaohao 阅读(70) 评论(0) 推荐(0)
Postgresql-SQL-优化:统计信息相关
摘要:1 统计信息存储视图 PostgreSQL 的统计信息主要存储在以下系统目录视图(catalog views)中: 1.1 表级统计信息 pg_stat_all_tables所有表的访问统计(包括系统表) SELECT * FROM pg_stat_all_tables WHERE relname 阅读全文
posted @ 2025-05-29 17:43 xibuhaohao 阅读(68) 评论(0) 推荐(0)
Clickhouse vs timescaledb
摘要:ClickHouse与TimescaleDB在数据排序和存储方式上的对比 1. 排序机制 ClickHouse 排序依据:基于 ORDER BY 子句定义的字段进行严格排序。数据在写入时,会根据 ORDER BY 的字段值(可以是单列或多列组合)进行字典序排列,生成逻辑上的有序数据片段(Data P 阅读全文
posted @ 2025-05-26 19:40 xibuhaohao 阅读(48) 评论(0) 推荐(0)