gpt4 book ai didi

mongodb - 在 MongoDb 上重复执行相同的 javascript 的性能?

转载 作者:可可西里 更新时间:2023-11-01 10:44:50 26 4
gpt4 key购买 nike

我正在考虑在 MongoDb 查询中使用一些 JavaScript。我有几个选择:

  • db.system.js.save 数据库中的函数然后执行
  • db.myCollection.find 带有$where 子句并且每次都发送JS
  • MongoEngine 中的
  • exec_js(我想它会使用上述之一)

我计划在一个经常使用的查询中使用 JavaScript,该查询作为对站点或 API 的请求的一部分执行(即,不是批处理管理作业),因此以合理的速度执行查询很重要。

我正在查看 30 多行函数。

Javascript 解释每次都是新鲜的吗?性能会好吗?它是构建查询的合理基础吗?

最佳答案

Is the Javascript interpreted fresh each time?

差不多。 MongoDB 每个运行的 MongoDB 实例只有一个“javascript 实例”。如果您尝试同时运行两个不同的 Map/Reduce,您会注意到这一点。

Will the performance be ok?

显然,这里对“OK”有不同的定义。 $where 子句不能使用索引。您可以将该子句与另一个索引查询结合起来。在任何一种情况下,每个对象都需要从 BSON 推送到 Javascript 运行时,然后在运行时内进行操作。

这个过程绝对不是你所说的“性能”。当然,通过这种衡量,Map/Reduce 的性能也不是很好,人们在生产系统上使用它。

Is it a sensible basis upon which to build queries?

这里真正的障碍不是代码中的行数,而是这段代码将解释的可能文档的数量。即使它是“服务器端”javascript,它仍然是服务器必须做的一堆工作。 (在一个线程中,在解释环境中)

如果您可以对其进行测试并正确确定其范围,它可能会成功。只是不要指望奇迹。

关于mongodb - 在 MongoDb 上重复执行相同的 javascript 的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6512811/

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