嵌套整数字段上的 Postgres jsonb 索引

2024-03-15

我的 postgres 数据库中有以下数据结构 - 一个名为的 jsonb 列customer

{
    "RequestId": "00000000-0000-0000-0000-000000000000",
    "Customer": {
        "Status": "A",
        "AccountId": 14603582,
        "ProfileId": 172,
        "ReferralTypeId": 15
    }
    "Contact": {
        "Telephone": "",
        "Email": ""
    }   
}

我想在上面创建一个索引ProfileId字段,它是一个整数。

我一直无法找到如何在嵌套字段上创建索引的示例。

我正在执行的查询(大约需要 300 秒)是:

select id, customer from where customer @> '{"Customer":{"ProfileId": 172}}'

运算符类jsonb_path_ops and jsonb_ops对于 GIN 索引支持@>操作员 https://www.postgresql.org/docs/current/static/gin-builtin-opclasses.html#GIN-BUILTIN-OPCLASSES-TABLE.

所以你的查询应该能够使用以下索引

create index on the_table using gin (customer);

它使用默认的jsonb_ops操作员。

根据手册jsonb_path_ops运算符速度更快,但仅支持@>操作员。因此,如果这是您拥有的唯一条件类型(对于该列),请使用jsonb_path_ops可能会更有效:

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

嵌套整数字段上的 Postgres jsonb 索引 的相关文章

随机推荐

  • 在 SharePoint 2013 中以编程方式创建文件夹

    目前我有在中创建文件夹的代码Documents运行时目录 using var context new Microsoft SharePoint Client ClientContext sharePointSite context Cred
  • 方案中的河内塔(递归)

    今天在scheme中写了如下代码 但是求值错误 请不要告诉我我编程很糟糕 我知道这是一个经典的递归问题 但我遇到了麻烦 define towers of hanoi n source temp dest if n 1 begin displ
  • 解析 ISO 8601 值 24:00:00 的日期失败

    我正在尝试解析来自数据源的传入日期 无法更改 它给了我 ISO 8601 格式示例的时间 2007 04 05T24 00 然而在 Net 中它无法将其解析为有效时间 维基百科指出它应该是有效的格式 维基百科 ISO 8601 http e
  • 更少的 mixin 和变量

    我有以下混合 iconFont color green font size 18px color color font size font size 如果我只想更改第二个变量值 我需要编写第一个变量默认值吗 h1 iconFont gree
  • Drupal 7在自定义主题中覆盖jquery js文件

    是否可以重写 覆盖自定义模板脚本变量中使用的默认 Drupal 7 26 jquery 我的意思是js文件之一 通过自定义主题来的一个 我试过这个sites all MYTPL template php但它不起作用 scripts misc
  • 不在映射中的字段包含在 ElasticSearch 返回的搜索结果中

    我想使用 Tire gem 作为 ElasticSearch 的客户端来索引 pdf 附件 在我的映射中 我从 source 中排除附件字段 以便附件不会存储在索引中 并且未在搜索结果中返回 mapping source gt exclud
  • Visual Studio Android 模拟器网络不工作

    I started using xamarin in visual studio and I installed visual studio android emulator Emulator works flawlessly but ne
  • 编辑超链接 Excel 2010 宏

    好的 我想创建一个宏来替换超链接的一部分 我的 Excel 文件中有大量的超链接 有没有办法创建一个宏来做到这一点 例如 www OldName com www Oldname com a www Oldname com b to www
  • C++ 非阻塞异步定时器

    我读过很多关于这个问题的帖子 但没有找到这个问题的答案 我想制作一个在后台运行并在完成后执行某些操作的计时器类 甚至我想一次调用多个异步倒计时的计时器 我在搜索这个类时发现了它 它似乎有效 但不在后台 我怎样才能将它转换为我想要的 Time
  • 如何在jquery mobile中初始化页面? pageinit 未触发

    在 jquery 移动页面上初始化对象的正确方法是什么 这事件文档 http jquerymobile com test docs api events html说使用 pageInit 没有该函数的示例 但给出了绑定到 的示例pagein
  • 在 iphone 应用程序中使用来自 sharekit 的 twitter 时无法验证 OAuth

    我正在 iphone 应用程序中使用 sharekit 实现 facebook 和 twitter 共享 Facebook 共享工作正常 但 twitter 共享出现错误 无法验证 OAuth 我遇到了同样的问题 这解决了它 https g
  • 使用 Fluent Nhibernate Table-Per-Subclass 策略时可以指定标识列吗?

    我正在创建一个 Fluent N hibernate 子类映射 目前看起来像这样 public class TaskDownloadMap SubclassMap
  • Github Actions,如何在作业步骤之间共享计算值?

    是否有一种 DRY 方法可以使用 Github Actions 在多个作业步骤中计算和共享值 在下面的工作流程 yml 文件中 回声 GITHUB REF 剪切 d f3 GITHUB SHA 在多个步骤中重复 name Test Buil
  • 用于自定义日志的 Logstash Grok 过滤器

    我有两个相关问题 第一个是如何最好地处理具有 混乱 间距等的日志 第二个 我将单独询问 是如何处理具有任意属性值对的日志 看 Logstash Grok 过滤器用于具有任意属性值对的日志 https stackoverflow com qu
  • Marshmallow 应用程序权限撤销通知? [复制]

    这个问题在这里已经有答案了 在 Android 6 0 Marshmallow 中 用户可以撤销特定的应用程序权限 即使是从应用程序内部授予该权限也是如此 我知道我可以检查权限ContextCompat checkSelfPermissio
  • 启动spark shell时出错

    我刚刚下载了最新版本的 Spark 当我启动 Spark shell 时 出现以下错误 java net BindException Failed to bind to 192 168 1 254 0 Service sparkDriver
  • 自定义 ListView 与 RadioButton 单选

    我希望你们中的一些人可以帮助我解决这个问题 我有一个自定义列表视图 2 个文本视图和 1 个单选按钮 我想把它作为单一选择 但每次我 单击列表视图上的项目 它不会删除该项目 从另一个单选按钮 检查 我的xml代码
  • C# - 方法的自动委托类型

    任何避免显式声明的方法MyMethodDelegate在这样的场景下 bool MyMethod string x BeginInvoke new MyMethodDelegate MyMethod x 我了解 lambdas a la g
  • C语言精确计时

    我下面有一些代码 我使用这段代码输出一些 1 和 0 unsigned output 38 来自嵌入式板的 GPIO 我的问题 两个输出值 1 0 或 0 1 之间的时间应该是416微秒正如我所定义的clock nanosleep下面的代码
  • 嵌套整数字段上的 Postgres jsonb 索引

    我的 postgres 数据库中有以下数据结构 一个名为的 jsonb 列customer RequestId 00000000 0000 0000 0000 000000000000 Customer Status A AccountId