较低的喜欢与iLIKE

2023-12-05

以下两个查询组件的性能比较如何?

较低的喜欢

... LOWER(description) LIKE '%abcde%' ...

iLIKE

... description iLIKE '%abcde%' ...

答案取决于许多因素,例如 Postgres 版本、编码和区域设置 -LC_COLLATE尤其。

裸露的表情lower(description) LIKE '%abc%'通常比description ILIKE '%abc%',并且任一都比等效的正则表达式快一点:description ~* 'abc'。这对于顺序扫描很重要,其中必须对每个测试行计算表达式。

But对于像您在答案中演示的大表,肯定会使用索引。对于任意模式(不仅仅是左锚定),我建议使用附加模块的三元组索引pg_trgm。然后我们讨论毫秒而不是秒,并且上述表达式之间的差异无效。

GIN 和 GiST 索引(使用gin_trgm_ops or gist_trgm_ops运算符类)支持LIKE (~~), ILIKE (~~*), ~, ~*(以及更多变体)类似。带有 trigram GIN 索引description(通常比 GiST 大,但读取速度更快),您的查询将使用description ILIKE 'case_insensitive_pattern'.

Related:

  • PostgreSQL LIKE 查询性能变化
  • 自动完成字段的类似 UTF-8 字符串

Postgres 中模式匹配的基础知识:

  • 使用 LIKE、SIMILAR TO 或正则表达式进行模式匹配

当使用所述三元组索引时,它是通常更实用:

description ILIKE '%abc%'

或者使用不区分大小写的正则表达式运算符(不带%通配符):

description ~* 'abc'

上的索引(description)不支持查询lower(description) like:

lower(description) LIKE '%abc%'

反之亦然。

谓词 onlower(description) ,表达式索引是稍微好一点的选择。

在所有其他情况下,索引(description)更可取,因为它支持both区分大小写和不区分大小写的谓词。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

较低的喜欢与iLIKE 的相关文章

  • PostgreSQL 中的用户定义变量

    我有以下 MySQL 脚本 我想在 PostgreSQL 中实现 SET statement search address query PREPARE dynquery FROM statement EXECUTE dynquery DEA
  • 创建大型表时的 JavaScript 性能

    我有一个数据库表 我希望用户能够通过 Web UI 修改该表中的值 因此 我让后端检索表的值 通过 JSON 将它们传递给我的 Javascript 我的 Javascript 构建表示表行的对象 然后使用原型模板从数据生成 HTML 表行
  • Postgresql - 如何获取表中与另一个表不匹配的条目

    我有一个问题 但我真的不知道如何问 请多多包涵 SELECT sc scd siteid scd desc frontend FROM shipping code sc LEFT OUTER JOIN shipping code descr
  • ASM 中从小端到大端的快速转换

    我在 C 中有一个 uint 类型数组 在检查程序是否在小端机器上运行后 我想将数据转换为大端类型 因为数据量可能会变得非常大 但总是均匀的 所以我想考虑将两个 uint 类型作为 ulong 类型 以获得更好的性能并在 ASM 中对其进行
  • JDBC 驱动程序的版本和数据库的版本必须完全匹配吗?

    假设我在服务器上运行 postgresql 9 1 但我选择使用 9 2 驱动程序来访问它 这行得通吗 如果不是 这些版本检查是否始终强制执行 或者是否取决于您的 DBMS 不是强制性的 驱动程序可以支持多个版本的 RDBMS 或者仅支持特
  • 为什么未执行的语句会减慢我的函数速度?

    我创建了四个不同的函数 如下所示 var normal function return var control function return alert Hello world var withArguments function ret
  • 使用 Python 使用正确的编码从 Oracle 导入

    我很抱歉提出一个字符编码问题 因为我知道你们每天都会遇到很多问题 但我无法弄清楚我的问题 所以我还是问了 这是我们正在做的事情 使用 Python 从 Oracle DB 获取数据并cx Oracle 使用 Python 将数据写入文件 使
  • sprintf 与 String.Format 的性能[重复]

    这个问题在这里已经有答案了 我正在比较 sprintf 用法的性能 并对我所看到的感到有点困扰 我测试了以下 4 个方法 将 ClassWithToString 的实例传递给每个方法 PrintInt 除外 它接收实际的整数值 type C
  • C++:哪个更快 - 在 hashmap 中查找还是在 switch 语句中查找?

    我有一种代码模式 可以将一个整数转换为另一个整数 像这样 int t int value switch value case 1 return const 1 case 3 return const 2 case 4 return cons
  • 控制台应用程序比 GUI 应用程序运行得更快吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我对编程世界比较陌生 我有几个性能问
  • rspec 返回“PG::Error: ERROR: 关系“table_name”不存在”

    rvm rspec 2 8 0 rails 3 0 6 和 pg 0 13 2 上的环境为 REE 2011 12 在 CentOS 5 6 上使用 PostgreSQL 8 3 17 db migrate 可以正常工作 但 rspec 出
  • 有人可以解释一下以下内存分配 C 程序的性能行为吗?

    在我的机器上 时间 A 和时间 B 交换取决于是否A是 定义或未定义 这会改变两个的顺序 callocs 被称为 我最初将此归因于寻呼系统 奇怪的是 当mmap被用来代替calloc 情况更加奇怪 两个循环花费的时间相同 正如预期的那样 作
  • 与 Postgres 的 TCP 连接安全吗?需要 SSL 吗?

    早上好 我正在浏览 Postgresql 配置文件 最近注意到有一个ssl选项 我想知道什么时候需要这样做 假设您有一个应用程序服务器和一个数据库服务器 不在专用网络内运行 如果用户尝试登录 如果未启用 SSL 应用程序服务器在查找用户密码
  • Postgres:跨行连接 JSONB 值?

    我正在掌握 Postgres gt 9 5 中的 JSONB 功能 并且很喜欢它 但遇到了障碍 我读过有关连接 JSON 字段的功能 所以 a 1 b 2 创造 a 1 b 2 但我想在多行的同一字段中执行此操作 例如 select row
  • 我应该测试是否等于 1 还是不等于 0?

    前几天我在这里编码 写了几个 if 语句 其中的整数总是要么0 or 1 实际上充当bools 我问自己 当检测结果呈阳性时 哪个更好 测试int 1 or int 0 例如 给定一个 intn 如果我想测试是否是true 我应该使用n 1
  • Postgres 数据库中特殊的时区处理

    我的环境 I m in 法国巴黎 UTC 1 or CET It s 12am 00 00 我们在2016 年 11 月 25 日 My Postgres数据库托管于亚马逊网络服务 AWS RDS 在eu west 1 region 问题
  • 如何使用 pgAdmin 恢复 postgreSQL 转储文件?

    我有一个 dmp 文件 想要从中恢复数据库 使用 pgAdmin 我该怎么做 在 PgAdmin3 内 在您正在使用的服务器中创建一个新数据库 右键单击该数据库并选择 恢复 使用 浏览器 按钮选择 dmp 文件 选择 恢复 开始恢复数据库
  • 如何实现具有LinkedHashMap类似功能的ConcurrentHashMap?

    我用过LinkedHashMap with accessOrdertrue 并同时允许最多 500 个条目作为数据的 LRU 缓存 但由于可扩展性问题 我想转向一些线程安全的替代方案 ConcurrentHashMap在这方面似乎不错 但缺
  • Postgresql 创建扩展失败

    我正在使用扩展 到目前为止没有任何问题 现在我创建一个新的 当我打电话时 创建扩展实用程序 我进入 PG 9 2 创建扩展实用程序 FEHLER Syntaxfehler bei ZEILE 1 创建扩展实用程序 在 PG 9 1 中 创建
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi

随机推荐

  • DataAnnotations.DisplayAttribute.Order 属性是否不适用于 ASP.NET MVC 2?

    我为订单属性 of the 显示属性在我的模型元数据中 MetadataType typeof OccasionMetadata public partial class Occasion private class OccasionMet
  • SQLite 1.0.94 未出现在 EDM 提供程序上

    我注意到这也是 1 0 93 的问题 但似乎也适用于 1 0 94 进一步来说 计算机运行 Windows 8 1 x64 Visual Studio 2013 从 SQLite 官方网站安装 sqlite netFx451 setup b
  • 使用 getComputedStyle().getPropertyValue() 获取边框值? (Mozilla、FF)

    在某些浏览器 即 Firefox 中getComputedStyle getPropertyValue 不报告任何简写 CSS 的内容 例如border 是否有一种非特定代码的方式来获取这些速记 CSS 值 我考虑过制作一个速记 CSS 及
  • 为什么用户代理样式表是最后一个要应用的样式表?

    我见过一个answer 讨论了样式表在网页中的应用顺序 我正在学习认证 我遇到了这个问题 问题 您正在使用 HTML5 和 CSS3 创建应用程序 风格 页面源自五个样式表 款式不是 正确应用于应用程序中的页面 你需要 确定样式表应用的顺序
  • Tweepy 跟踪多个术语

    我正在对推文进行内容分析 我使用 tweepy 返回与某些术语匹配的推文 然后将 N 条推文写入 CSv 文件进行分析 创建文件和获取数据不是问题 但我想减少数据收集时间 目前我正在迭代文件中的术语列表 一旦达到 N 例如 500 条推文
  • 以编程方式在scale_fill_manual ggplot调用中指定颜色

    我想根据特定列中给出的值对 ggplot2 分面图的背景进行着色 利用我之前提出的问题的答案 我能够将我需要的东西拼凑在一起 joran 的回答this问题特别有用 因为它说明了创建单独的数据框以传递给 ggplot 的技术 This al
  • MySQL Group by - 获取计数为零的列

    我尝试谴责其他答案 但没有运气 因此提出了要求 我有一张桌子 还有几张与其他年份类似的桌子 这是表结构 STATUS Year Company Name Certified 2010 Google Cert Denied 2010 Goog
  • 预期第一层具有 x 尺寸,但得到形状为 y 的数组

    我刚刚在节点上启动tensorflow js 我一直在网上上下搜索答案 混乱我有来自的图像数据image1 tf fromPixels img 我尝试将其与其他图像数据一起输入xs tf tensor image1 image2 困惑在于无
  • 获取请求IP的正确方法是什么[重复]

    这个问题在这里已经有答案了 我发现了一些在 servlet 中获取 ip 的不同方法 但我不知道哪一个是正确的以及为什么 1 request getHeader X Real IP 2 String ip request getHeader
  • BETWEEN 查询返回零或一

    我有这样的疑问 SELECT fecha BETWEEN 1390950000 AND 1391126400 GROUP CONCAT CONCAT WS idItem nombreItem cantidad diferencia ORDE
  • mod_rewrite:从 URL 中删除查询字符串?

    我正在尝试使用 htaccess 进行以下重定向 301 page 1 重定向到 其中 是通配符 基本上 我只是想阻止任何人访问 URL 末尾带有 page 1 的页面 而是将他们定向到相同的 url 减去 page 1 有没有快速的方法来
  • 如何在单页网站的导航中实现活动状态

    我正在开发一个一页网站 在这个网站中 我希望在导航栏中的活动部分或 页面 带有下划线 目前 我点击链接后会显示带下划线的链接 但是 当我单击转到另一个活动 页面 时 它仍然带有下划线 以下是在 HTML 中设置导航的方式 div class
  • 有没有办法将 @mention 插入到使用 pyfacebook 发布的 Facebook 状态更新中?

    我的应用程序中有一些如下代码 message Hi John Doe postID fb stream publish message loader render to string wall post phtml message mess
  • /dev 与 /exec 文档和错误处理

    让我们从没有太多文档的事实开始 dev vs exec端点 如果你有一些我找不到的有价值的信息 我非常乐意看到它 没有讽刺 据我所知 dev 是当前的编辑版本 exec 是脚本的最后发布版本 或者如果您选择旧版本 这告诉我 我应该能够编辑我
  • 如何让 Z3 返回最小模型?

    如果我给 Z3 一个像 p 这样的公式q 我希望 Z3 返回 p true q dont care 或者 p 和 q 切换 但它似乎坚持为 p 和 q 赋值 即使我没有完成转换 通话时亮起Eval 除了对此感到惊讶之外 我的问题是如果 p
  • 如何扩展或重写 CakePHP 核心助手的功能/方法

    This Cakephp 覆盖 HtmlHelper link问了一个非常相似的问题 但没有完整的答案 也许现在 随着 蛋糕2 的推出 就会有 我想创建一个自定义助手 它是 Cake 的 Paginator Helper 的子类 我希望我的
  • iPhone sdk - 使用自定义相机

    我正在开发一个需要连续拍摄两张照片的应用程序 我目前正在使用 iPhone 相机 但是 我不想取消 左下角的按钮 我不想预览我的照片 蓝色 按钮 使用 我应该怎么办 我应该自己制作相机吗 我找不到只有 拍照 按钮的自定义相机的简单教程 创建
  • Elasticsearch 数据二进制文件内存不足

    我尝试将 800GB 文件上传到 Elasticsearch 但我不断收到内存错误 告诉我数据二进制文件内存不足 我的系统有 64GB RAM 和 3TB 存储空间 curl XPOST http localhost 9200 carrie
  • 在 UWP 中保存图像时访问被拒绝。访问被拒绝。 (HRESULT 异常:0x80070005 (E_ACCESSDENIED))

    我正在 Windows 10 SDK 上开发通用 Windows 应用程序 以在图像中识别的面部上绘制矩形 我正在使用Win2D编辑图片并在其上绘制矩形 我可以从图片库中读取文件 但是当我尝试在编辑后保存图像时 会出现以下错误 访问被拒绝
  • 较低的喜欢与iLIKE

    以下两个查询组件的性能比较如何 较低的喜欢 LOWER description LIKE abcde iLIKE description iLIKE abcde 答案取决于许多因素 例如 Postgres 版本 编码和区域设置 LC COL