mongoose查询性能问题
x.find().select({b:1}).lean()
这里x是个大表,字段非常多.
请教一下大家:
1.select和lean到底只是减少返回时间还是同时减少了查询时间
2.大表(字段非常多)对查询有什么影响吗? 还是加了索引基本就无影响?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
先说lean的问题,这纯粹是客户端的一个动作,是mongoose特有的功能。确实可以让返回结果更快,但是对服务端没有任何不同。
select是只返回其中一些字段,但MongoDB不是关系数据库,动态数据模型决定了在这个文档读出来之前你是不知道它里面有哪些字段的。所以从这个角度来讲,不管你要返回多少字段,整个文档都必须要从磁盘上读出来,所以select对磁盘I/O没有帮助。但是确实可以减少在网络上传输的流量,因此对延迟时间和资源使用是有一定帮助的。
最后说说索引的问题。索引的作用主要是帮助过滤和排序,这两者你这都没有,所以基本上是不会有帮助的。