mongoose查询性能问题

发布于 2022-09-11 21:42:50 字数 148 浏览 13 评论 0

x.find().select({b:1}).lean()

这里x是个大表,字段非常多.
请教一下大家:
1.select和lean到底只是减少返回时间还是同时减少了查询时间
2.大表(字段非常多)对查询有什么影响吗? 还是加了索引基本就无影响?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

东走西顾 2022-09-18 21:42:50

先说lean的问题,这纯粹是客户端的一个动作,是mongoose特有的功能。确实可以让返回结果更快,但是对服务端没有任何不同。
select是只返回其中一些字段,但MongoDB不是关系数据库,动态数据模型决定了在这个文档读出来之前你是不知道它里面有哪些字段的。所以从这个角度来讲,不管你要返回多少字段,整个文档都必须要从磁盘上读出来,所以select对磁盘I/O没有帮助。但是确实可以减少在网络上传输的流量,因此对延迟时间和资源使用是有一定帮助的。
最后说说索引的问题。索引的作用主要是帮助过滤和排序,这两者你这都没有,所以基本上是不会有帮助的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文