中文模糊查询性能优化 by PostgreSQL trgm

  1. 云栖社区>
  2. 博客>
  3. 正文

中文模糊查询性能优化 by PostgreSQL trgm

德哥 2016-05-06 13:00:07 浏览10990
展开阅读全文

前模糊,后模糊,前后模糊,正则匹配都属于文本搜索领域常见的需求。
PostgreSQL在文本搜索领域除了全文检索,还有trgm是一般数据库没有的,甚至可能很多人没有听说过。
对于前模糊和后模糊,PG则与其他数据库一样,可以使用btree来加速,后模糊可以使用反转函数的函数索引来加速。
对于前后模糊和正则匹配,则可以使用trgm,TRGM是一个非常强的插件,对这类文本搜索场景性能提升非常有效,100万左右的数据量,性能提升有500倍以上。

例子:
生成100万数据

postgres=# create table tbl (id int, info text);
CREATE TABLE
postgres=# insert into tbl select generate_series(1,1000000), md5(rand

网友评论

登录后评论
0/500
评论
德哥
+ 关注