Я отложил кластер mongoDB хешированным _id. Я проверил размер индекса, там лежит _id_hashed индекс, который занимает много места:Что такое индекс _id_hashed для mongoDB?
"indexSizes" : { "_id_" : 14060169088, "_id_hashed" : 9549780576 },
MongoDB руководство говорит, что индекс на sharded ключа создается, если вы шард коллекции. Наверное, это причина, по которой индекс _id_hashed.
Мой вопрос: что такое _id_hashed index, если я только запрашиваю документ по полю _id? могу ли я удалить его? так как занимает слишком много места.
ps: кажется, что mongoDB использует индекс _id при запросе, а не индекс _id_hashed. план выполнения для запроса:
"clusteredType" : "ParallelSort", "shards" : { "rs1/192.168.62.168:27017,192.168.62.181:27017" : [ { "cursor" : "BtreeCursor _id_", "isMultiKey" : false, "n" : 0, "nscannedObjects" : 0, "nscanned" : 1, "nscannedObjectsAllPlans" : 0, "nscannedAllPlans" : 1, "scanAndOrder" : false, "indexOnly" : false, "nYields" : 0, "nChunkSkips" : 0, "millis" : 0, "indexBounds" : { "start" : { "_id" : "spiderman_task_captainStatus_30491467_2387600" }, "end" : { "_id" : "spiderman_task_captainStatus_30491467_2387600" } }, "server" : "localhost:27017" } ] }, "cursor" : "BtreeCursor _id_", "n" : 0, "nChunkSkips" : 0, "nYields" : 0, "nscanned" : 1, "nscannedAllPlans" : 1, "nscannedObjects" : 0, "nscannedObjectsAllPlans" : 0, "millisShardTotal" : 0, "millisShardAvg" : 0, "numQueries" : 1, "numShards" : 1, "indexBounds" : { "start" : { "_id" : "spiderman_task_captainStatus_30491467_2387600" }, "end" : { "_id" : "spiderman_task_captainStatus_30491467_2387600" } }, "millis" : 574
, который отвечает на мой вопрос. спасибо, Джефф. – zach