首页 > 数据库技术 > 详细

mongodb配置权重的方案改写

时间:2016-07-01 17:56:17      阅读:447      评论:0      收藏:0      [点我收藏+]

我想配置一个权重池,有3个权重A,B,C,根据不同权重选取2个id

我原本的设计是

权重A:[id1,id2...]

权重B:[id1,id2...]

权重C:[id1,id2...]

权重的操作有$push, $pop,和取整个表的操作,这样如果频繁操作有可能导致所标

我一个同事提出了另一个方案:

{

  {

    uid:id1

    weight:A

  }

  {

    uid:id2

    weight:B

  }

......

}

只要把weight key加上索引,取的时候根据weight索引去取全部A的文档。

下面方面的优势如下:

直接用$set 就可以改变权重了,(用pop,push)pop某个值会遍历数组,数据量大了,效率不高,甚至有可能导致锁表。

weight加上索引后,取A权重的全部id的速度,比上面没加索引的快2/3(加了索引,是直接查找)。

 

mongodb配置权重的方案改写

原文:http://www.cnblogs.com/2wind/p/5633864.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!