指定活动查找mongo点击日志从来没有如此快过,正则+mongo索引惊艳了

mongo的集合上创建完索引,查询效果惊呆我了("clickid:/^2733_.*$/i"表示忽略大小写)!

daylog("click",0,"clickid:/^2733_.*$/")

只扫描了3个结果就出来了!!

以前不用索引我真是惭愧!!

查找点击日志是最大量的工作,因为点击日志太大了。结果还没眨眼结果就出来了!

目前只在clickid创建了索引,所以一看活动id就知道要学会借道使用clickid(以活动id开头,后面是cid和ts,以"_"分隔开),于是找到了下面的正则表达式的查询!结果毫秒级,惊艳了!!

> daylog("click",0,"clickid:/^2733_.*$/").explain()

db.click_20170606.find({clickid:/^2733_.*$/}).sort({_id:-1})

{

"cursor" : "BtreeCursor clickid_1 multi",

"isMultiKey" : false,

"n" : 3,

"nscannedObjects" : 3,

"nscanned" : 4,

"nscannedObjectsAllPlans" : 10,

"nscannedAllPlans" : 11,

"scanAndOrder" : true,

"indexOnly" : false,

"nYields" : 0,

"nChunkSkips" : 0,

"millis" : 21,

"indexBounds" : {

"clickid" : [

[

"2733_",

"2733`"

],

[

/^2733_.*$/,

/^2733_.*$/

]

]

},

"server" : "mc-arch-mongo-ems-172-17-0-6:27017"

}

那么最后的问题:mongo shell查询是算最快了,mongoexport呢?它如何最快呢?

你可能感兴趣的:(指定活动查找mongo点击日志从来没有如此快过,正则+mongo索引惊艳了)