本人在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秒的要求话,是否需要多台机器?
——————————————————————————–
此邮件包含的信息归北京中体骏彩信息技术有限公司所有,邮件所包含信息仅适用于上面提到的个人或实体的使用目的。未经授权禁止对此邮件所含信息进行复制和传播。如果您误收到此邮件,请您立刻通过响应此邮件通知我们并将本邮件从您的系统中删除。