社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  MongoDB

MongoDB-保存vs更新

Punit Goel • 5 年前 • 525 次点击  

我的集合中有大约400个字段(包括顶级字段和嵌入式字段),以下是写查询的性质:

  1. 所有写查询总是更新单个文档,平均60个 文档中的字段。
  2. 集合中有索引字段,但没有写入查询更新索引字段。
  3. 写查询的数量非常大。

我可以用任何一个 .save() .update() 更新文档。在update中,我只传递需要更新的字段,而在save中,我传递整个文档。我想知道在这种情况下使用update是否会比save(反之亦然)提供更好的性能,或者它在数据库级别没有任何区别,而且两者的性能都一样好?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51170
 
525 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Nachiappan Kumarappan
Reply   •   1 楼
Nachiappan Kumarappan    6 年前

在性能上没有任何显著的变化。原因如下

在mongodb中保存或更新文档时,您可能决定从另一个应用程序调用save或update,该应用程序可以用C#、Java、JavaScript、PHP或其他语言编写。

在这种情况下,存在进程间通信(如果mongo db在另一台计算机上运行,则为网络调用)。与此相比,通过更新有选择地替换文档和通过保存完全替换文档所需的时间差可以忽略不计。顺便说一下,如果没有索引,保存和更新两个都可能运行O(n)的时间复杂度。

对于一个有250个字段的文档,文档的大小可能不会太大,这是我们必须考虑的。如果更新文档的大小明显小于保存文档的大小,请使用更新。

否则,使用save/update,这取决于客户端代码中哪个更优雅。