当前位置: 首页 > news >正文

Postgresql17数据库中的扩展插件说明

        PostgreSQL是一个功能强大、开源、支持多种数据模型的 关系型数据库管理系统(RDBMS)。它以其高可靠性、强大的功能、标准兼容性和可扩展性而闻名,被广泛用于从小型应用到大型企业级系统的各种场景。

1、所有可用的扩展

通过SELECT * FROM pg_available_extensions order by name 可查看所有可用的扩展。

1.1、地理空间与地址标准化 (PostGIS & Address Standardizer)

这些扩展提供地理空间数据处理和地址解析功能。

扩展名

作用

postgis / postgis-3

核心空间扩展:提供 geometry 和 geography 两种空间数据类型,以及大量空间函数(如距离计算、缓冲区、相交、投影转换等)。是构建 GIS 应用的基础。postgis-3 是版本别名。

postgis_raster / postgis_raster-3

栅格数据支持:允许在 PostgreSQL 中存储、查询和处理栅格数据(如卫星影像、DEM 高程图),并提供与矢量数据的集成分析功能。

postgis_sfcgal / postgis_sfcgal-3

3D 空间分析:基于 SFCGAL 库,提供高级 3D 几何操作,如三维布尔运算、体积计算、三维缓冲区等,适用于 BIM、城市建模等场景。

postgis_tiger_geocoder / postgis_tiger_geocoder-3

美国地址地理编码:基于美国人口普查局 TIGER 数据,将地址文本转换为地理坐标(正向编码),或将坐标转换为地址(反向编码)。常用于美国地区的地址标准化。

postgis_topology / postgis_topology-3

拓扑数据管理:提供拓扑数据模型,用于管理共享边界的面要素(如行政区划),确保空间关系的拓扑一致性(如无重叠、无缝隙)。

address_standardizer / address_standardizer-3

地址标准化引擎:将非结构化地址字符串(如 "123 main st, anytown")解析为结构化字段(街道、城市、州、邮编等),用于提高地理编码准确性。

address_standardizer_data_us / address_standardizer_data_us-3

美国地址数据集:为 address_standardizer 提供美国的地名、街道类型、缩写等词典数据,是其正常工作的数据依赖。

1.2、全文搜索与文本处理

提供高级文本搜索、相似性分析和字符处理功能。

扩展名

作用

fuzzystrmatch

模糊字符串匹配:提供 levenshtein、soundex、difference 等函数,用于计算字符串间的编辑距离或音似度,适用于拼写纠错、姓名匹配。

pg_trgm

三元组相似性搜索:基于 trigram(三个连续字符)的文本相似性度量和索引(GIN/GiST),支持 LIKE、ILIKE、正则表达式的高效模糊搜索。

unaccent

去除重音符号:提供 unaccent() 函数,将带重音的字符(如 é, ñ)转换为基本 ASCII 字符(e, n),便于不区分重音的搜索。

dict_int

整数文本搜索字典:允许在 tsvector 中索引整数,用于将数字视为“词”进行全文搜索。

dict_xsyn

扩展同义词字典:提供同义词替换功能,可自定义同义词映射文件,扩展全文搜索的召回率。

xml2

XML 处理:提供 XPath 查询、XSLT 转换、XML 解析/生成等函数,用于在数据库内处理 XML 数据。

1.3、​​​​​​​安全与连接

增强数据库的安全性和外部连接能力。

扩展名

作用

pgcrypto

加密函数:提供 crypt()、gen_salt()、pgp_encrypt()、pgp_decrypt() 等函数,用于密码哈希、数据加密、PGP 加解密等。

sslinfo

SSL 信息查询:提供函数获取当前连接的 SSL 证书信息(如客户端证书、加密套件),用于基于证书的身份验证和审计。

dblink

跨数据库连接:允许在当前数据库会话中连接并查询其他 PostgreSQL 数据库,实现跨库数据操作。

postgres_fdw

外部数据包装器:现代版 dblink,通过 FDW 接口访问远程 PostgreSQL 服务器的表,支持更高效的查询下推和连接优化。

file_fdw

文件外部表:将 CSV、文本等文件映射为数据库表,可直接用 SQL 查询外部文件数据。

​​​​​​​​​​​​​​1.4、性能监控与诊断

用于监控数据库性能、检查内部结构和调试问题。

扩展名

作用

pg_stat_statements

SQL 性能分析:跟踪所有 SQL 语句的执行次数、总时间、平均时间、I/O 等,是性能调优的必备工具。

pg_buffercache

缓冲区缓存检查:查看共享缓冲区中缓存了哪些数据页,用于分析内存使用和热点数据。

pg_freespacemap

空闲空间映射检查:查看表和索引的空闲空间(FSM),帮助理解膨胀和 VACUUM 效果。

pg_visibility

可见性映射检查:查看可见性映射(VM),了解哪些页面上的所有元组对所有事务都可见,影响 VACUUM 行为。

pageinspect

页面级检查:深入检查表和索引的数据页、元组、堆头等内部结构,用于高级故障排查。

pgstattuple

元组级统计:提供表和索引的元组级统计信息,如死元组数、膨胀率,用于分析表膨胀。

pg_walinspect

WAL 日志检查:查看 Write-Ahead Log (WAL) 记录的详细内容,用于灾难恢复分析和调试。

pg_prewarm

数据预热:将表或索引的数据页加载到共享缓冲区,避免冷启动时的性能下降。

​​​​​​​​​​​​​​​​​​​​​1.5、数据类型与通用功能

提供额外的数据类型、函数和工具。

扩展名

作用

hstore

键值对存储:提供 hstore 数据类型,用于存储简单的 (key => value) 对集合,是 JSON 之前的轻量级 NoSQL 结构。

jsonb

JSON 支持(未列出但重要):原生支持 JSON 数据,jsonb 支持索引和高效查询。

citext

大小写不敏感字符串:citext 类型在比较时忽略大小写,适用于邮箱、用户名等字段。

intarray

整数数组操作:提供对一维整数数组的专用操作符和函数(如交集、并集、排序),并支持 GIN/GiST 索引。

ltree

树形结构:提供 ltree 类型用于存储路径式标签(如 Top.Level.Deep),支持路径匹配查询,适用于分类树、组织架构。

cube

多维立方体:cube 类型用于表示多维空间中的点或框,支持 L1/L2/无穷范数距离和 GiST 索引,用于多维数据搜索。

seg

线段/区间:seg 类型用于表示一维浮点区间或二维线段,支持 GiST 索引,适用于范围查询。

isn

国际编号标准:提供 ISBN、ISSN、EAN13 等国际产品编号类型,自动验证格式和校验码。

uuid-ossp

UUID 生成:提供 uuid_generate_v1(), uuid_generate_v4() 等函数,生成版本 1(时间戳)和版本 4(随机)的 UUID。

tablefunc

表函数:提供 crosstab()(生成交叉表/透视表)、normal_rand() 等函数。

vector

向量数据类型:提供 vector 类型用于 AI/ML 场景,支持 IVFFlat 和 HNSW 索引,用于向量相似性搜索(如语义搜索)。

​​​​​​​​​​​​​​​​​​​​​1.6、索引与完整性

提供特殊索引方法和完整性约束支持。

扩展名

作用

btree_gin

GIN 中的 B-Tree 支持:允许在 GIN 索引中索引基本数据类型(int, text, timestamp 等),用于复合 GIN 查询。

btree_gist

GiST 中的 B-Tree 支持:类似 btree_gin,但在 GiST 索引中支持基本类型,还用于范围类型、EXCLUDE 约束。

gist

通用搜索树(内建):支持多维数据、范围、全文搜索的索引。

gin

通用倒排索引(内建):适用于数组、全文搜索、hstore、jsonb 等。

bloom

Bloom Filter 索引:基于签名文件的索引,空间效率高,用于快速排除不匹配的行(可能有假阳性)。

tsm_system_rows / tsm_system_time

TABLESAMPLE 方法:提供基于行数或时间的系统采样方法,用于快速获取数据子集进行分析。

​​​​​​​​​​​​​​​​​​​​​1.7、触发器与审计

用于数据变更跟踪和通知。

扩展名

作用

insert_username

自动填充用户名:提供触发器函数,在插入/更新时自动设置记录的创建/修改用户。

`moddatetime``

自动填充修改时间:提供触发器函数,自动更新记录的最后修改时间戳。

tcn

触发变更通知:提供触发器,当表数据变更时通过 NOTIFY 发送消息,用于实现简单的事件驱动架构。

pgrowlocks

行锁信息:显示表中被锁定的行及其锁定事务信息,用于锁争用分析。

http://www.dtcms.com/a/391998.html

相关文章:

  • pwn知识点——字节流
  • 39、AI Agent系统开发:智能代理的完整构建体系
  • Qt自定义标题栏拖动延迟问题解决方式分享
  • 招聘数字化转型如何落地?
  • 每日一题(10)
  • 费马小定理的证明
  • GPS和北斗导航信号特点一览表
  • 开发避坑指南(51):达梦数据库查看索引与建立索引的方法
  • Science Robotics最新研究:腿足机器人控制的革新性进展
  • CSP时间复杂度解析:从理论到实践
  • 手搓FOC-环路激励的实现
  • DNN人脸识别和微笑检测
  • 从API调用到UI效果:直播美颜SDK特效面具功能的集成实战
  • 神经网络学习笔记13——高效卷积神经网络架构ShuffleNet
  • MySQL双写缓冲区:数据安全的终极防线
  • 第八章 惊喜09 运维支持VS产品迭代
  • sward入门到实战(2) - 如何管理知识库
  • Vue: 依赖注入(Provide Inject)
  • nethunter 中文乱码解决
  • 【软件测试】第5章 测试分类(上)
  • [硬件电路-262]:MPH6250SQ 管脚定义、概述、功能、技术指标、使用场景及原理分析
  • git status
  • synchronized的高频面试题以及答案
  • cka解题思路1.32-4
  • gradle 和 maven 有什么区别?
  • C/C++语言中`char`类型在x86与ARM平台上的符号性定义差异
  • 台积电纳米泄密事件:Curtain e-locker数据全链路防护
  • 正点原子imx6ull+ov2640+lcd显示问题汇总
  • 【Spring AI】简单入门(一)
  • Java中接口入参验证