千家信息网

POSTGRESQL如何解决LIKE %%的问题

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下POSTGRESQL如何解决LIKE %%的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!题目比Big mouth, 在POSTGRESQL 进入视野前,如果我
千家信息网最后更新 2025年12月02日POSTGRESQL如何解决LIKE %%的问题

小编给大家分享一下POSTGRESQL如何解决LIKE %%的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

题目比Big mouth, 在POSTGRESQL 进入视野前,如果我们看到有程序员这样写

Select name from employees where name like '%Chars%';

并且这个表的行数在几百万行到千万行的水平,我们只能给写这个语句的人一句。

Are you lost your mind , 换句话就是 你是疯了吗?

世界不同了,队伍不好带,以前 ORACLE , SQL SERVER , MYSQL 都统一口径说,我们不支持这样 SB 的查询方式,你要不就 写成

select name from emplyees where name like '%Chars'

要不就

select name from employees where name like 'Chars%'

如果非要如此,%% 的like查询,你不如去做全文索引。 就此就将这样的需求已 SB 的标签贴了几十年。 就连ORACLE 这样已经神话的数据库,也对此毫无作为。

"更多选择,更多欢乐", 当然这欢乐不是给 ORALCE ,SQL SERVER ,MYSQL 这几个家伙的。因为到此为止,这几位,还是只能 TABLE SCAN 对待 like %% 这样的查询,而走不了索引。

POSTGRESQL ,面对几十年解决不了的问题,轻声的说了句,我试试吧

来我们看看POSTGRESQL 怎么能将别的数据库都做不到的事情,轻描淡写的就做完了。

首先我们先做一个实验,先建立一个表,

然后我们插入100的数据

我们看看我们插入了什么样的数据,以NAME 为字段的一堆无序的字符。

为了比较POSTGRESQL 在处理 LIKE %% 这样的数据和全表扫描的区别,我们也建立一个不使用POSTGRESQL 索引的数据表,来做一个对比

名字里面有一个 2

通过POSTGRESQL 独有的GIN 索引,(这只是其中一种解决 LIKE %%方法,还有几种方法还可以面对更大无序的数据去做 like %%),至于更刺激的事情,还是找个机会下次说。

CREATE INDEX idx_employees_name_gin ON employees USING gin (name gin_trgm_ops);

索引建立完了,我们也需要开始做比较了

结果很明显,employees 1 在使用了 gin 索引后,查询的时间耗时 1.221ms ,而如果不使用索引的情况下 我们要使用 68.484 ms 的时间。

有人可能有异议,说你的比较光是在POSTGRESQL 本身上做的,这不公平,你应该在MYSQL , SQL SERVER , ORACLE 最新版上都做一遍。

我只想说,当我看到100万的数据,在用LIKE %% 查询还能走索引,在一个破笔记本上的时间是 1.221ms,我已经毫无愿望在去测那些数据库了,毫无意愿, 而更可笑的是, 这样一个数据库他是免费的,比MYSQL 免费的还彻底。 面对 SQL SERVER ORACLE 收取巨额费用,几十年了还解决不了这样like %% 的问题。

看完了这篇文章,相信你对"POSTGRESQL如何解决LIKE %%的问题"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

数据 索引 查询 问题 数据库 完了 时间 更多 欢乐 事情 方法 篇文章 要不 还是 不同 明显 可笑 轻描淡写 到此为止 这不 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华邦互联网科技 万得软件开发新人培训 量子服务器是什么 泰拉瑞亚服务器地址 淮北工程管理软件开发定制公司 世纪云涿州互联网科技有限公司 软件开发类的国外大学 暗影格斗3为什么无法连接服务器 服务器cpu报警有哪些原因 数据从前台存储到数据库的过程 nfsd共享存储服务器作用 河北省邢台市文明城市网络安全 爬取疫情数据到数据库 网络开发大于网络安全吧 昆山网络技术公司 中关村互联网前沿科技 内乡定制软件开发 网络安全主题手抄报简单三年级 冒险岛数据库技术支持 如皋电信网络安全 阿里巴巴软件开发简历模板 重庆用的多的招聘软件开发 软件开发和信息技术服务的区别 香港集信软件开发有限公司 智能软件开发的企业 互联网科技巨头股价 工程数据库技术 吴卓葵 巨果网络技术有限公司 孝感计算机软件开发怎么收费 思科email服务器配置实验
0