使用MongoDB Native 2.0+的Im。 我有一個名爲services
的集合。此集合包含在另一個集合中引用clients
的文檔。這意味着,每項服務都由一個客戶「擁有」。何時創建索引,何時不創建
會有大約50-200個客戶。 每個客戶在理論上可以「擁有」1-50個服務,但實際上大多數客戶可能會在1-10個左右。
每個服務都有兩個字段作爲唯一標識符。一個是_id
,它用於管理員URL和作爲文檔之間的不可變引用。另一個是slug
,這是一個更簡單的標識符,主要用於公共URL以提高可讀性。
我主要有兩種類型的查詢對這個集合:
db.services.find({client: clientID, _id: id}).toArray(callback)
db.services.find({client: clientID, slug: slug}).toArray(callback)
我認爲,我要創建以下複合索引優化查詢:
db.services.ensureIndex({client: 1, _id: 1})
db.services.ensureIndex({client: 1, slug: 1})
但考慮到每個客戶「擁有」的服務可能很少(?)數量。也許只用一個索引就足夠了。要麼...
db.services.ensureIndex({client: 1})
或僅這一個複合索引
db.services.find({client: clientID, slug: slug}).toArray(callback)
...因爲slug
查詢可能會被用到了很多比`_id更多。
你會創建什麼樣的索引?
謝謝你對此的所有提示!