跳到主要内容

扩展管理

PostgreSQL 扩展可以为数据库增加新的类型、函数、索引能力或运算符。常见扩展包括 pgcryptouuid-ossppg_trgmvector

CloudBase PostgreSQL 支持的扩展范围以控制台和实际数据库版本为准。启用扩展前,请评估权限、安全和性能影响。

完整扩展列表请参考 支持的扩展

查看已安装扩展

可以通过 DMC SQL 窗口查询当前数据库已安装的扩展。

select extname, extversion
from pg_extension
order by extname;

也可以查看当前数据库可用的扩展列表。

select name, default_version, installed_version, comment
from pg_available_extensions
order by name;

启用扩展

扩展通常通过 create extension 启用。建议将扩展安装到明确的 schema 中,便于管理。

create extension if not exists pgcrypto;
create extension if not exists pg_trgm;

如果扩展需要特定权限或当前实例不支持,SQL 会返回权限或不可用错误。此时应以控制台支持范围为准。

常见扩展

扩展用途
pgcrypto生成随机值、摘要、加密相关函数
uuid-ossp生成 UUID
pg_trgm文本相似度检索、模糊搜索
vector向量类型和相似度检索

pgvector 的使用方式请参考 pgvector

使用 pg_trgm 做模糊搜索

pg_trgm 适合对短文本做模糊匹配和相似度排序。

create extension if not exists pg_trgm;

create index articles_title_trgm_idx
on public.articles
using gin (title gin_trgm_ops);

select id, title
from public.articles
where title ilike '%cloudbase%'
order by similarity(title, 'cloudbase') desc
limit 20;

如果需要自然语言分词、权重和排序,请优先参考 全文检索

移除扩展

移除扩展前,需要确认没有表、索引、函数或视图依赖该扩展。

drop extension if exists pg_trgm;

生产环境不建议直接移除扩展。应先在测试环境执行依赖检查,再安排维护窗口操作。

注意事项

  • 扩展会影响数据库能力边界,启用前应确认业务确实需要。
  • 部分扩展可能需要更高权限,或只在特定 PostgreSQL 版本中可用。
  • 扩展对象可能影响备份恢复和跨环境迁移,应在初始化脚本中记录扩展启用语句。