При выполнении запроса AND в mongodb влияет ли производительность на порядок предложений? Мои тесты, кажется, показывают «нет», но мне интересно, не упускаю ли я что-то, потому что я видел статьи, утверждающие обратное.
Например. рассмотрим некоторые документы «Блога»:
{_id:1, type:'personal', author:'Mr A', ...}
{_id:2, type:'commercial', author:'Mr A', ...}
{_id:3, type:'personal', author:'Mr B', ...}
{_id:4, type:'commercial', author:'Mr B', ...}
{_id:5, type:'personal', author:'Mr C', ...}
{_id:6, type:'commercial', author:'Mr C', ...}
{_id:7, type:'personal' , author:'Mr D', ...}
{_id:8, type:'commercial', author:'Mr D', ...}
With indexes:
col.ensureIndex({type:1})
col.ensureIndex({author:1})
Теперь я могу запускать запросы AND с другим порядком:
col.find({type:'commercial', author:'Mr A'})
col.find({author:'Mr A' , type:'commercial' })
Я попытался запустить «объяснить», и у меня сложилось впечатление, что он будет использовать индекс «автор» независимо от порядка (поскольку «мистер А» имеет только два блога, а «коммерческий» появляется в 4 блогах). Так является ли задокументированной функцией выбор «наиболее сужающего» индекса независимо от порядка предложений? Спасибо большое.