转载请注明出处:
虽然MongoDB 查询优化器一般工作的很不错,但是也可以使用 hint() 来强迫 MongoDB 使用一个特定的索引。在这种方法下某些情形下会提升性能。
一个有索引的 collection 并且执行一个多字段的查询。传入一个制定的索引,强迫查询使用该索引
语法
db_name.table_name.find({query}).hint({"index_name":1});
名称 | 描述 |
---|---|
db_name | 数据库名 |
table_name | 集合名 |
query | 查询条件 |
index_name | 索引名 |
说明
这里,我们在使用 query 条件查询时,强制使用 index_name 索引。
案例
db.student.find({socre:{$gt:80}}).hint("score_1").explain()
java 在 MongoDB 查询时,指定查询强制 使用的索引:springframework 中 MongoDB 的 查询api 类:query 已经支持了 在查询时的强制指定查询的索引:
源码使用封装的方法如下:在封装查询条件时,通过 这个方法,将索引名称传入就可以进行 强制索引查询