18.385Z")
rpts 1
ctt ISODate("2020-07-25T00:18:18.385Z")
vv 1
3、业务逻辑
账单表字段很少且结构很简单,Java程序多线程间隔拉取数据到...ES集群,然后对拉取后的数据进行更新,现在拉取数据平均时间在4s-10s(小分片执行时间在4s,大的分片在10s左右).
4、具体SQL
备注:每次拉取最近一个月内已审核且rpts等于1的账单数据
db.fee_detail.find...({ut:{ $gte: new Date(1595638774822) },
billSt: 1, rpts: 1 }).limit(5000)
5、更新逻辑
为了避免重复拉取数据,对已拉取的数据进行状态更新...,这个组合索引并不是真正的稀疏索引,根据稀疏索引定义来讲,稀疏索引中不包括不存在字段的文档,但是这个是组合索引,但ut日期字段一直都在.所以此稀疏索引中还是索引key对应文档信息,只是缺少billSt字段而已...ut类似叶子遍历,遍历完成,去检索下一个ut,直到所有ut都都检索,只统计1小时区间,只画出2个日期,实际有792个ut不同值,相当于有792如下树结构.生产1个月则更多,1个分片就有280万不同值.需要寻址遍历