问题标签 [compound-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.

0 投票
1 回答
49 浏览

indexing - 在 EdgeDB 中定义复合索引

如何在 EdgeDB 中定义复合索引?

该文件指出

最简单的索引形式是索引,它直接引用一个或多个属性

但我找不到在索引中引用多个属性的方法。

0 投票
1 回答
33 浏览

python - 具有复合索引 Mongodb 的高查询目标

我试图在 Mongodb 上创建一个复合索引。但是无论我尝试什么,我都有一个查询目标 1000-1500,而且这个 ID 只有 1000-2000 个文档。

我希望你能帮助我,尝试了一切。只是索引 eventid 具有相同的查询目标,大约为 1000

谢谢

0 投票
0 回答
25 浏览

mongodb - MongoDB - 具有相同结果的不同查询的索引使用情况

我有 2 个查询,结果与以下相同:

我有 2 个复合索引:field_3_field_1field_3_field_2.

解释这两个查询的查询执行表明:

  • totalKeysExamined查询 1 运行速度更快(3 次),搜索次数等于 1,并且更高totalDocsExamined(这两个相同)并使用了上述索引中的 1 个。
  • 查询 2 运行速度较慢,搜索次数 (32) 高得多,而 和 低得多totalKeysExaminedtotalDocsExamined两个索引都被使用。

谁能解释这种行为以及推荐的查询方法是什么?谢谢。

0 投票
0 回答
25 浏览

postgresql - PostgreSQL:使用复合索引进行选择和排序

我得到了一个subscribers表,其中包含以下索引:

在此处输入图像描述

不幸的是,我无法更改此表或添加另一个索引。无论如何,不​​容易。

我的目标是在此表上执行 a SELECT,在某些约束下,例如column1 = value1. 然而,最重要的是将LIMIT结果的数量达到一个期望的值,同时保持秩序

也就是说,如果今天我选择 100 行,明天我选择 200 行,我希望今天的 100 行也包含在明天的结果中。所以我一直在为同一组订阅者工作,每天都在增长。我想解决方案应该通过某种ORDER BY查询组合。

所以问题是:有没有办法在通过一个/多个现有表索引对结果进行排序时完成这样的结果?

0 投票
1 回答
41 浏览

mongodb - 我应该如何构建我的 MongoDB 组合索引?

我有一个由以下字段组成的 mongo 图像元数据集合:camera_name(str)、photographer_name(str)、resolution(str)、image_size(int in MB, rounded) 和 timestamp(10 digit UNIX timestamp)

我只想运行 2 个查询:

  1. 给定 camera_name,返回时间戳 <= 1639457261(示例 UNIX 时间戳)的记录。记录必须按降序排序
  2. 给定相机名称、摄影师名称、分辨率、图像大小和时间戳,我想检索记录,按输入的时间戳的降序排序。

我创建了 2 个索引:

  1. { "camera_name": 1, "timestamp": -1 }
  2. { "camera_name": 1, "photographer_name": 1, "resolution": 1, "image_size": 1, "timestamp": -1}

第一个索引有效,但是当我对第二个索引运行查询时,没有返回任何记录。我确信集合中存在记录,并且我希望在运行第二个查询时至少获得 10 条记录,但它返回一个空列表。

索引的配置方式有问题吗?谢谢

这是示例数据:

我执行的查询:

  1. camera_name=Nikon and timestamp<=1503582086 应该返回 4 条记录
  2. camera_name='Fuji' ,photographer_name='Beth', resolution='1920x1080', image_size='5' and timestamp<=1900000000 应该返回 2 条记录,但我得到 0 条记录
0 投票
3 回答
39 浏览

mongodb - mongo 查询不会触发复合索引

我有成千上万的文件是这样的:

(这是我的数据库中更大文档的过度简化版本,包含更多字段。数据库包含数百万个文档)。这是我想用于计数执行的过滤器:

我想要做的是创建一个这样的索引:

并让查询使用它。但mongo实际上忽略了它。相反,mongo 正在使用另一个索引,即

执行统计数据显示了这个阶段:

  1. IXSCAN 对 {"field_id":1, "anotherField":1} 索引,产生 500k 个keysExamined,这是 500k 个具有 field_id = 'abcd' 的文档
  2. 获取过滤器的其余部分,返回 20k 作为计数

当然,如果 mongo 使用了正确的索引,我希望它已经从 IXSCAN 检索到 20k 文档,或者至少是更接近的数字。

我只是不明白为什么 mongo 不使用该索引。我还尝试更改索引中字段的顺序,但没有成功。我正在使用 Mongo 4.4.6

0 投票
0 回答
16 浏览

mongodb - 如何优化 Mongo 查询的 FETCH 阶段?

我有以下查询

这个查询使用的索引是

阶段是

IXSCAN(对于 Origin.SN = 5701099)-> IXSCAN(对于 Origin.SN = 5701097)-> SORT_MERGE -> FETCH -> SKIP -> LIMIT

我可以看到排序也发生在索引上,因此该部分得到了优化。但问题在于 FETCH 阶段。那里的过滤器如下

这部分没有优化。即使我创建了一个像 productLowerCase_1 这样的索引并将查询更改为使用左锚定正则表达式,该索引甚至也没有在 FETCH 阶段使用。MongoDB 在查询中是否只使用一个索引?有什么办法可以让它在查询中使用 productLowerCase_1 索引和 type_1_Origin.SN_1_timestamp.milliseconds_-1 索引?

0 投票
1 回答
23 浏览

mongodb - 如何在 mongodb 中为特定文档创建复合索引

我正在运行 MongoDB 4.2,请看下面我的文档的样子:

底线是我需要创建一个复合索引,以提高查询的性能,以查找具有“转移”的“结果类型”的品种,我不确定如何将下面的命令缩小到仅具有结果类型=转移

0 投票
0 回答
8 浏览

mongodb - Mongo中的复合索引

在性能和快速性的情况下,唯一索引是否像复合索引一样执行和返回查询数据?

0 投票
0 回答
15 浏览

mongodb - NestJS Mongodb 复合索引

我目前正在用 Nest js 编写 mongodb 模式。

我的架构如下

  1. 有没有办法为集合创建 nestJs 模式?
  2. 有没有办法为 _id 字段设置索引?

我尝试了以下方法,但没有奏效。

检查文档后,我找不到该问题的答案。请帮我