Parse-Server source _rperm 和 _wperm mongo 查询,我应该为它们建立索引吗?
Parse-Server source _rperm and _wperm mongo queries, and should I index them?
我正在查看我的 mongo 日志,为我的未编制索引的查询添加索引。默认情况下,mongo 仅记录完成时间超过 100 毫秒的查询。
我发现我有几个 _wperm 和 _rperm 键。我看到 ACL 就是这样被分解的。但是哪种类型的 Parse.Query 调用可能会在日志中创建这样的查询?
query: { orderby: {}, $query: { _rperm: { $in: [ null, "*", "[UserId]" ] } } }
我什至注意到这个查询是在一个 class 上进行的,它总共只有 8 个对象,但需要 133 毫秒才能完成,对于这么小的 class,这似乎真的很慢,即使如果它必须在内存中进行排序和扫描。
我是否应该在代码级别解决此问题,修改我的查询以避免此类 mongo 查询?或者我应该为这些类型的查询添加索引吗?
我注意到我也有一些显示在 mLab 的“慢速查询”选项卡中。查询看起来像 {"_id":"<val>","_wperm":{"$in":["<vals>"]}}
,带有建议的索引 {"_id": 1, "_wperm": 1}
,但它有以下注释:
"_id" is in the existing {"_id": 1} unique index. The following index recommendation should only be necessary in certain circumstances.
然而,这是我较慢的查询之一,需要 320 毫秒才能完成。它在 _User class 上。是因为 _User class 有很多行吗?由于 _id 是唯一的,我觉得添加 _wperm 索引应该不会有什么不同,因为我最终只有一个对象。
我很好奇对这些查询采取行动是否会带来好处,或者我是否应该安全地忽略它们。
您应该按照 mongodb 的建议为您的 collections 编制索引。在过去美好的 parse.com 天里,这些索引是根据看到的工作负载自动创建的。现在您需要创建它们。两者都有道理。在没有 masterKey 的情况下,_rperm 将在每个查询 运行 上被命中。每次写入时的 _wperm。将来,我们可以自动创建 _id + _wperm 索引,因为所有写入都使用此索引
我正在查看我的 mongo 日志,为我的未编制索引的查询添加索引。默认情况下,mongo 仅记录完成时间超过 100 毫秒的查询。
我发现我有几个 _wperm 和 _rperm 键。我看到 ACL 就是这样被分解的。但是哪种类型的 Parse.Query 调用可能会在日志中创建这样的查询?
query: { orderby: {}, $query: { _rperm: { $in: [ null, "*", "[UserId]" ] } } }
我什至注意到这个查询是在一个 class 上进行的,它总共只有 8 个对象,但需要 133 毫秒才能完成,对于这么小的 class,这似乎真的很慢,即使如果它必须在内存中进行排序和扫描。
我是否应该在代码级别解决此问题,修改我的查询以避免此类 mongo 查询?或者我应该为这些类型的查询添加索引吗?
我注意到我也有一些显示在 mLab 的“慢速查询”选项卡中。查询看起来像 {"_id":"<val>","_wperm":{"$in":["<vals>"]}}
,带有建议的索引 {"_id": 1, "_wperm": 1}
,但它有以下注释:
"_id" is in the existing {"_id": 1} unique index. The following index recommendation should only be necessary in certain circumstances.
然而,这是我较慢的查询之一,需要 320 毫秒才能完成。它在 _User class 上。是因为 _User class 有很多行吗?由于 _id 是唯一的,我觉得添加 _wperm 索引应该不会有什么不同,因为我最终只有一个对象。
我很好奇对这些查询采取行动是否会带来好处,或者我是否应该安全地忽略它们。
您应该按照 mongodb 的建议为您的 collections 编制索引。在过去美好的 parse.com 天里,这些索引是根据看到的工作负载自动创建的。现在您需要创建它们。两者都有道理。在没有 masterKey 的情况下,_rperm 将在每个查询 运行 上被命中。每次写入时的 _wperm。将来,我们可以自动创建 _id + _wperm 索引,因为所有写入都使用此索引