0

本人在mongodb建模如下:

sales

{

“_id” : “5356295353192”,

“a” : 0,

“b” : 2,

“c_time” : ISODate(“2015-08-12T15:59:10Z”),

“d” : 5,

“e” : 5,

“f” : 11,

“x” : [

{

“a” : 297936,

“b” : 5,

“c” : 2,

“d” : 3500,

“e” : 0

},

{

“a” : 297947,

“b” : 0,

“c” : 2,

“d” : 3400,

“e” : 10

},

{

“a” : 297941,

“b” : 5,

“c” : 1,

“d” : 2450,

“e” : 0

}

]

}

其中,x中的内容不固定,可能有1至10几个

一天数据大概多的时候上千万,少时几百万条。

采用c_time,_id进行分片

由于要类似以下查询,可能会再加上时间

db.sales.find({x.a:xxxx});

db.sales.find({x:{“$elemMatch:{a:xxxx,b:xx}}});

对x.a字段建了一个索引

由于数据量过大,目前打算sales_time保留一个月左右数据,想问一下几个问题,

1,只能用remove操作是吗?

2,若用remove操作,索引空间是否不会收缩,效率是否会变低?

3,对于数据要经常删除,且有索引情况下,应采用哪些方案为好,是否有oracle中drop分区之类的操作?

4,大概3亿的数据量,针对一些查询5秒的要求话,是否需要多台机器?

——————————————————————————–
此邮件包含的信息归北京中体骏彩信息技术有限公司所有,邮件所包含信息仅适用于上面提到的个人或实体的使用目的。未经授权禁止对此邮件所含信息进行复制和传播。如果您误收到此邮件,请您立刻通过响应此邮件通知我们并将本邮件从您的系统中删除。