mongo索引交叉点的工作原理

时间:2015-08-20 16:45:19

标签: mongodb mlab

如果我创建两个索引,一个带有降序,一个带有时间上升,如果我查询旧数据和新数据,我可以在两个索引中搜索,并且在两种情况下都获得了良好的性能。

目前我的索引在降序,所以当我查询旧数据时,它真的很慢。我正在考虑再创造一个提升并试一试。由于我有大量的文件(3200万)我想先问这里。 这是我的索引和查询,它导致我在开始/结束时间有点老问题。我有一个接近100天的TTL,这使我的收藏能够保存3200万份文件。

index: { 
    "source_type" : 1.0 , 
    "source_id" : 1.0 , 
    "key" : 1.0 , 
    "start" : -1.0 , 
    "end" : -1.0
} 

query: keys = diag_db.telemetry_series.aggregate([
    { '$match': {
      'source_type': 'SERVER',
      'start': { '$gte': start },
      'end':   { '$lte': end },
      '$or': stream_id_query
    }},
    { '$project': {
      'source_id': 1,
      'key': 1
    }},
    { '$group':
      { '_id': { 'source': '$source_id', 'key': '$key' }
    }}
  ])['result']

0 个答案:

没有答案