相关疑难解决方法(0)

什么是涵盖指数?

我刚刚在一些数据库讨论中听到过覆盖索引这个术语 - 它是什么意思?

sql database indexing

65
推荐指数
2
解决办法
4万
查看次数

MongoDB TotalKeysExamined 和 TotalDocsExamined 有什么区别

我在 MongoDB 中有一个用户集合。我已将“状态”键定义为索引,如下所示:

db.users.createIndex("status": 1)
Run Code Online (Sandbox Code Playgroud)

我正在尝试查找状态设置为“活动”的所有用户。

我的数据库共有 24 个用户。其中 17 个处于活跃状态。

执行下一个命令时:

db.users.find("status": "Active").explain("executionStats")
Run Code Online (Sandbox Code Playgroud)

我收到下一个:

"executionStats" : {
        "executionSuccess" : true,
        "nReturned" : 17,
        "executionTimeMillis" : 2,
        "totalKeysExamined" : 17,
        "totalDocsExamined" : 17,
...
Run Code Online (Sandbox Code Playgroud)

TotalDocsExamined很清楚 - Mongo 总共扫描了 17 个文档并跳过其余 7文档(请记住,我们总共收集了 24 个用户)。这太棒了,而且非常高效——因为我要求查找并拥有每个文档的数据。

但是当我执行相同的查询时,但现在使用该.count()方法 - 我不希望 Mongo 扫描 17 条记录,我希望他扫描 0 条记录并立即给我结果总数 - 而无需迭代整个数据库 -因为当有数十亿条记录时,此任务可能会关闭整个服务器。

所以我正在这样做:

db.users.explain("executionStats").find("status": "Active").count()
Run Code Online (Sandbox Code Playgroud)

我收到这个:

"executionStats" : {
        "executionSuccess" : true,
        "nReturned" : 0,
        "executionTimeMillis" : 0,
        "totalKeysExamined" : 18,
        "totalDocsExamined" : …
Run Code Online (Sandbox Code Playgroud)

database performance count mongodb nosql

5
推荐指数
0
解决办法
1027
查看次数

标签 统计

database ×2

count ×1

indexing ×1

mongodb ×1

nosql ×1

performance ×1

sql ×1