问题标签 [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.
mongodb - 当某些字段可以为空或字符串数组时添加复合索引
我有一个 mongodb 集合。
我想在字段p1
, p2
,上创建一个索引p3
。我的文档可能没有p2
或p3
。我应该如何创建我的索引?
performance - MongoDB 中的复合索引是否改进了多重匹配(不是排序)?
文档似乎有点不清楚。
1)它明确指出复合索引确实提高了多字段排序的性能(依赖于顺序和方向)。
2)有一句话让我觉得它也会提高多字段MACH(sql类比:a=1 and b=2 and c<5)
https://docs.mongodb.org/v3.0/tutorial/optimize-query-performance-with-indexes-and-projections/
如果查询搜索多个字段,请创建复合索引。
它没有说明排序。
那么字段 a、b、c 的复合索引是否比三个单字段索引(其中 a=1 和 b=2 和 c<5)的查询更适合匹配性能?
mongodb - 复合索引的顺序在 MongoDB 性能方面有何影响?
我们需要以与查询参数相同的顺序创建复合索引。这个顺序对性能有影响吗?
想象一下,我们有一个地球上所有人类的集合,其索引为sex
(99.9% 的时间为“男性”或“女性”,但仍然是字符串(不是二进制))和一个索引为name
.
如果我们希望能够选择某个特定sex
的name
所有人,例如所有名为“John”sex
的“男性”,那么使用first 还是first的复合索引更好name
?为什么不)?
rethinkdb - 使用多个 .contains() 进行 RethinkDB 索引查询
我有以下查询可以正常工作但速度很慢,但是我无法弄清楚如何正确索引它:
我尝试使用以下索引(使用 Thinky.js):
然后查询它我试过这个:
消息表如下所示:
但我最终得到零结果。我非常感谢任何建议!
mongodb - 索引 OR AND 查询 MongoDB
我的数据库中有一个 requests 表,其中包含几个字段,例如“pending”表示请求是否未得到服务,“expiry”表示以毫秒为单位跟踪过期时间(Epoch),“count”表示每次触发请求时倒计时到 0。
现在我搜索请求已过期或计数已降至 0 且待处理为真的所有请求。然后我根据到期时间订购结果。
我确实尝试为此创建一个索引,但根据我的 explain() 命令的结果,我确信 MongoDB 没有使用该索引。关于这种查询的复合索引应该是什么的任何建议?
通俗地说,查询本质上是 (A OR B) AND C 由 C 排序
那是我通过 Morphia、Java 构建的查询(我是 MongoDB 新手)->
mongodb - 如何在 MongoDB 中存储增量数据?
我在各种收藏中拥有数百万份文件。
我的应用程序必须定期将一些增量数据更新到 MongoDB。我如何实现这一目标?
对于增量数据中的每条记录,如果记录存在,则必须使用新值对其进行更新,否则必须插入。
假设上面是我的数据, lifnr 和 bukrs 作为具有唯一约束的复合索引。{lifnr & bukrs} 值与任何现有值相同的任何新记录都应替换旧记录。如果它是唯一的 {lifnr & bukrs} 的新记录,那么它必须插入/附加它。
指导我的方法。谢谢
arrays - 如何通过MongoDB中的两个及更多数组字段来提高查询性能?
我收集了具有多个数组字段的对象。就像是:
如何优化下一个查询?
复合索引不能有多个数组字段。如果我将数组字段中的所有数据复制到新字段中searchArray
并添加仅包含此数组的复合索引会有帮助吗?这是好方法吗?
mysql - 使用覆盖索引优化查询
我有以下带有子查询和自联接的查询:
我对此定义了以下索引:
当我查看使用 EXPLAIN 的查询时,使用覆盖索引 idx_bucket 的子查询肯定是优化的,但自连接和 where 子句没有。此外,为什么它只报告patient_sid
andattribute_id
用于used_key_parts
而 anattachment_condition
显示为lft
, rgt
(这是什么意思?)。和 ' rgt`lft
都只是定义为没有特殊属性的整数,那么为什么不在我的覆盖索引中使用它们呢?
更奇怪的是当我定义
只patient_sid
注册在used_key_parts.
Furthermore filtered
drop to 1.60%
from 11.00%
!
mongodb - 复合索引的密钥长度
我希望将 MongoDB 2.4.x 实例升级到 2.6。作为此过程的一部分,我运行了该db.upgradeCheckAllDBs()
方法以确保我的数据处于正确的升级状态。此检查在我的数据库中发现了许多记录,它们在字段上定义了索引,但键超过了 1024 字节的限制。也就是说,我看到了以下形式的错误:
指示该文档在field
字段中包含超过 1024 字节(键的限制)的值。
这很容易解决(我可以删除 上的那个索引field
),但是复合索引呢。例如:假设我有一个如下索引:
这是否意味着文档的email
和meta
字段的总长度超过了 1024 字节?或者每个字段是 1024 字节,还是其他组合?即对于复合索引,如何判断key长度超过了1024字节的限制?