什么时候在MongoDB中建立索引才有意义?
mlab慢速查询分析器的示例:
Log lines read
8 hours of logs starting at 2019-02-14 12:25 (2019-02-14 11:25 UTC)
find command
{"myArray":{"$all":["<vals>"]},"myBoolean":{"$ne":"<val>"}}
sort
{"myDate":-1}
total time (all occurrences)
5 seconds, 127 milliseconds
average time
394 milliseconds
query count
13
average documents / index keys examined
50,000 / 50,000
in-memory sort
yes
recommended index
index: {"myDate": -1, "myArray": 1, "myBoolean": 1}
一个性能不佳的查询,会遍历所有文档,甚至在内存中进行排序。但是查询在8小时内只发生了13次,总共花费了5秒的时间。
当构建索引有意义时,参数和值是什么?例如,在构建索引之前,一个查询需要分析8小时日志中的多少时间?