问题标签 [partial-index]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - DEFAULT is not allowed in this context 错误
我试图向数据库添加索引,但我不断收到错误消息:
PG::SyntaxError: ERROR: DEFAULT is not allowed in this context
在阅读了几个小时的文档后,我似乎无法解决这个问题。
我正在运行这个:
我的表如下所示:
我想要做的是一个 ServiceModel 只有一个区域的默认值。
一个区域可以有许多 ServiceModel,但它只能有 1 个默认的。
postgresql - 带有部分索引的 SQLAlchemy Postgres upsert
我有一个名为 Person 的表,其中包含三个字段 - ID、城市和名称。城市可以为空,所以我有两个部分唯一索引 - 一个在 ID 和城市不为空的城市上,一个在 ID 上,城市为空。
现在我想有一个使用 SQLAlchemy 的 upsert 语句,带有那些部分索引,但我无法弄清楚语法。目前我有:
但是当我尝试执行时,我得到
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.InvalidColumnReference) 没有与 ON CONFLICT 规范匹配的唯一或排除约束
这怎么行?除了运行纯 SQL 还有其他方法吗?
django - 如何在 django 2.2 模型中创建部分索引
我在 Django 2.2 中有这样的模型
我希望我在 phone_number 和 token 上的索引基于 post_state 值是部分的,我知道如何在 Postgres shell 中使用 SQL 命令来做到这一点,但我不知道如何在 django 模型中做到这一点,所以它进入了迁移文件也。
java - Mongo Java Driver - 如何使用部分索引创建复合索引?
这是我没有部分的复合索引:
我希望 DELETED 索引是部分的(仅是错误的)我知道如何使用 IndexModel 进行部分索引,但我不知道如何使用 IndexModel 进行混合升序/降序的复合索引。实际上,IndexModel 和 Indexes.compoundIndex 似乎是完全不同的创建索引的实现。
postgresql - 我可以创建如下所示的部分索引吗?
假设有一个包含 5 列的表(id、first_name (text)、last_name(text)、product_name(text) 和 available(boolean))。
postgresql - postgres:经常更新列的部分索引
我是 postgres 的新手,我有一个关于在经常更新的列上使用部分索引的问题。
我有一张巨大的桌子:工作,其中有以下列。它有近 5000 万行。
表格和索引
该assigned_at
列将在某人获得该作业时更新,并且该completed_at
列将在作业完成时更新。所以表会经常更新。
我试图创建一个部分索引,如下所示:
更新查询
现在我想清除已分配超过 10 天的作业的分配。这是我的查询。执行需要很长时间:
该索引在测试环境中运行良好,但在在线环境中不使用。我想知道在线环境的频繁操作是否阻止了部分索引的使用?以及如何加快更新查询的速度?
如果有人对此有任何想法,将不胜感激。谢谢。
解释分析:
- 在测试环境中:
- 在在线环境中:
postgresql - Aurora postgres 我可以在 JSONB 列上创建部分 GIN 索引吗
我们有两个不同的应用程序将使用我的搜索表。它们有两个不同的过滤器,它们将始终被应用,并且对于每个应用程序都是不同的。所以我创建了一个如下所示的部分索引,以便过滤器已应用于索引中。创建索引的列是 JSONB 列。
表中总共有大约 400K 行,我知道应用上述过滤器将使每个索引的满足行数几乎减半(即)大约 200K 行满足 search_text_ndx_1 的条件和 200K 行满足 search_text_ndx_2
但是,即使这些部分索引在查询中指定了过滤器,在进行如下检查时也不会使用这些部分索引。
但是他们在创建为单个索引时使用 GIN 索引,如下所示
不确定为什么查询不使用部分索引
我正在尝试的版本是 PostgreSQL 12.7
postgresql - 是否可以在 PostgreSQL 中索引数组列的位置?
假设我想在表my_table
中查找值5
位于数组 column 的第一个位置的行my_array_column
。为了准备表格,我执行了以下语句:
现在,查询可能如下所示:
这可行,但它不使用创建的 GIN 索引。是否可以使用索引搜索5
特定位置的值?
postgresql - Postgres 部分索引与常规索引
我有一个包含 1m 条记录的表,其中 100k 条记录具有 null on colA
。其余记录具有非常不同的值,在此列上创建常规索引与使用 的部分索引是否有区别where colA is not null
?
由于常规 Postgres 索引不存储 NULL 值,它与创建部分索引不一样where colA is not null
吗?
任何一个索引都有什么优点或缺点?