1
我正在構建mongodb對象並將它傳遞給mongo存儲庫的findAll方法。如何在MongoDB中爲動態標準建立索引以提高性能
如何通過圍繞所有這些領域設計索引來實現更快的性能?
val criteriaQuery = MongoDBObject.newBuilder
criteriaQuery += OrderNames.CLIENT_ID -> clientId
if (StringUtils.isNotBlank(orderId))
criteriaQuery += OrderNames.ORDER_ID -> orderId
if (StringUtils.isNoneBlank(customerEmail))
criteriaQuery += OrderNames.CUSTOMER_EMAIL -> customerEmail
if (orderStartDate != null) {
if (orderEndDate != null)
criteriaQuery += OrderNames.ORDER_DATE -> MongoDBObject("$gte" -> orderStartDate, "$lte" -> orderEndDate)
else
criteriaQuery += OrderNames.ORDER_DATE -> MongoDBObject("$gte" -> orderStartDate)
}
else if(orderEndDate != null)
criteriaQuery += OrderNames.ORDER_DATE -> MongoDBObject("$lte" -> orderEndDate)
return criteriaQuery.result
我在這裏的問題是: 如果我有A,B,C,d,E,F的標準。 如果我在(a,b,c,d,e,f)上創建索引
它對(a,c,d,e,f),(a,c),(a,e ,f),(a,c,f))等。 我需要考慮所有這些?
您能否介紹一下複合索引在這裏的工作原理?我有很多可能性,因爲我們在標準中有7 8個字段。 – Malav
例如 集合上的以下索引: {x:1,y:1,z:1} 可以支持以下索引支持的查詢: {x:1} {x:1,y:1 } https://docs.mongodb.com/v3.2/tutorial/create-indexes-to-support-queries/ – Marco
感謝您的回覆。我還有一個問題,如果我有x,y,z,a,標準中的b字段。我只用3 x,y,z索引。這應該沒問題嗎? – Malav