在文本搜索或模糊匹配场景中,很多人第一反应是用 LIKE '%关键字%',但这种方式在数据量大时性能极差。
其实 PostgreSQL 自带了一个被低估的强大扩展 —— pg_trgm,可以让模糊匹配性能飞跃式提升 🚀。
🧠 一、pg_trgm 是什么?
pg_trgm(Trigram Matching)通过将字符串拆分为三元组(trigram),再基于相似度计算进行匹配。
举个例子:
字符串 "postgres" 被拆成以下 trigram:
" p", " po", "pos", "ost", "stg", "tgr", "gre", "res", "es "
每个 trigram 都是连续的 3 个字符。
PostgreSQL 会在索引中存储这些 trigram,从而实现近似匹配、模糊搜索、相似度排序等高级能力。
🧩 二、启用 pg_trgm 扩展
在数据库中执行以下命令启用扩展:
CREATE EXTENSION IF NOT EXISTS pg_trgm;
⚙️ 三、创建测试表与数据
我们先创建一个简单的用户表,并插入一些中文数据:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name TEXT
);
INSERT INTO users (name) VALUES
('张三'),
('李四'

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



