mongodb索引选取及优化

问题

项目中有类似这样的查询场景

开始是对某个查询类似SQL

select * from t_order where customerCode=xxxx and createTme> xxx and createTimecreateTime desc

开始是对两字段分别加索引。 压测试发现效果不好

> db.t_order.createIndex({'customerCode':1})                     #客户编号
> db.t_order.createIndex({'createTime':-1})                       #创建时间范围查询

解决

给这两字段创建组合索引

压测效果明显好转, 当然,在项目中最好要给默认的时间范围,比如一个月

> db.t_order.createIndex({'customerCode':1, 'createTime':-1},{"name":"cus_createT_index","background":true})

其他

当mongodb业务上有很多查询时,不要单独去创建索引,需应该是根据条件一个个创建组合索引。这样性能更高,比如

 

mysql这种场景最好也用组合索引

你可能感兴趣的:(mongodb,mongodb)