mongodb的ObjectId做相等判断很耗时间,有没有更快的方法?
发布于 7 年前 作者 ytcgk 3619 次预览 最后一次回复是 7 年前 来自 问答
我有个统计分析的业务,需要进行百万次级别的判断两个ObjectId是否相等的操作,发现特别耗时。 我开始用project._id.toString()==incomes[i].projectid.toString()这种方法判断,一百万次判断要耗时13秒左右, 后来改成project._id.equals(incomes[i].projectid)这种方法,耗时也没有明显提升,依然是12~13秒, 最后试了JSON.stringify(project._id)==JSON.stringify(incomes[i].projectid)这种方法,耗时更多,要16秒多。
不知道有没有更快的判断方法?
6 回复
自定义主键,替换掉objectId,用自增长id,或其他方式的,也可以看下objectId对象的源码,
来自酷炫的 CNodeMD
没办法优化一百万次,只能优化判断?
@hyifeng 对,次数没法优化
使用md5判断呢
还有就是优化次数 将业务分散 当天只能显示昨天以前的 用定时任务去统计放到另一个统计结果专用的表里 这样就好了
我觉得是X-Y Problem了,建议把描述一下上级问题