gpt4 book ai didi

mongodb - 如何调试我的 mongodb 索引?

转载 作者:可可西里 更新时间:2023-11-01 10:31:27 25 4
gpt4 key购买 nike

我的搜索在生产环境中花费了 80 多秒,但在我的本地环境中只需要一秒钟(数据几乎相同)。我不确定接下来可以采取什么步骤。

查询看起来像:

@params = {search_field: 'kamil'}
User.only('username', 'email', 'name', 'role', 'utm_email').or({:"email" => /#{@params[:search_field]}/i},
{:"username" => /#{@params[:search_field]}/i},
{:"name" => /#{@params[:search_field]}/i}).explain()

explain() 的开发输出:

https://gist.github.com/kamilski81/827f9b363b0392cc87d9

explain() 的生产输出:

https://gist.github.com/kamilski81/c0b07b838ddfbdb97c61

我不太确定从哪里获取它,因为输出看起来与我非常相似。开发运行 mongodb-2.4.9,生产运行 mongodb-2.4.10

最佳答案

您可以使用探查器。它将为每个超过阈值(默认 100 毫秒)的操作创建一个包含文档的集合。

您应该使用 shell 打开它,并将阈值设置为大约 60 秒:

db.setProfilingLevel(1,60000)

执行操作并在集合中找到相关文档,您可以看到正在使用哪个索引、等待锁的时间、MongoDB 扫描了多少文档等等.

关于分析器的更多信息 here

关于mongodb - 如何调试我的 mongodb 索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23790746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com