请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问老师:从一个文档的内嵌数组的头 push 的话,会有性能问题吗

mongoDB 会需要拷贝一整个数组空间后移吗,还是说只是把头指针换了个位置。

正在回答 回答被采纳积分+3

1回答

Stannum 2020-12-13 15:30:10

同学好~你的担心是对的。使用$push向数组的指定位置插入元素,是会重写数组的。这种重写还会涉及到索引的更新等其他数据库操作,所以对于大数组来说,这种$push操作的性能是不太好的。
我们一直在讨论操作层面的问题,但我其实建议你先思考一下设计层面的问题。你的文档结构是否可以再优化?能否通过改进文档结构来规避性能差的操作?

0 回复 有任何疑惑可以回复我~
  • 提问者 小学生6年级 #1
    好的谢谢老师,刚从 Mysql 那边切换过来,有些设计点的确没考虑到位。
    回复 有任何疑惑可以回复我~ 2020-12-13 15:32:42
  • Stannum 回复 提问者 小学生6年级 #2
    从关系型数据库转向非关系型数据库需要思维上的转变。不要急慢慢来,多从设计层面思考问题,尽量不要陷入对语句和操作符的过分依赖。其实一个好的数据结构设计能规避很多的操作问题~
    回复 有任何疑惑可以回复我~ 2020-12-13 15:37:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信