Можно ли ограничить количество отсканированных документов, связанных с подвыбором MySQL? - PullRequest
2 голосов
/ 22 октября 2019

При запросах к коллекции MongoDB с миллионами документов и фильтрации или сортировке по неиндексированным полям запросы выполняются слишком медленно, поскольку mongo необходимо сканировать всю коллекцию. В Mysql это возможно, выполнив выборку, отфильтровав только последние 40 тыс. Строк, например:

select c.name, c.age, c.address //another fields
  from (select * from myTable order by id desc limit 40000) as c
 where c.name = 'My name' //more and more filters
 order by c.date_req desc
 limit 25

. В этом SQL я получаю последние 40 тыс. Строк, а затем применяю логику фильтрации и сортировки, и она запускаетсябыстро, даже если в таблице миллионы строк.

В MongoDB я получаю хорошую производительность только при фильтрации или сортировке индексированных полей, в противном случае она работает слишком медленно. Я предполагаю, что не могу создать индекс в каждой области, так что я могу сделать в этом случае? Есть что-то похожее на MongoDB?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...