Очень медленная фильтрация по коллекции ID - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть простая модель сообщения. Когда я делаю Message::get(), все работает нормально.

В базе данных в общей сложности ~ 800 записей.

Когда я делаю

Message::whereIn('id', $messageIds)->get();

Это займет ~ 6 секунд для запуска. $ messageIds - это массив, состоящий из примерно 60-70 идентификаторов.

Я пробовал:

  • Использование областей.
  • Извлечение всех () и затем filter() в коллекции.
  • Использование whereRaw с идентификатором,
  • Использование whereRaw для всего объекта при выборе идентификаторов оттуда

Каждый время, которое он пытается отфильтровать по ID, либо БД, либо Коллекции, занимает более 6 секунд. Что могло так сильно затормозить? И что я могу предоставить, чтобы облегчить ответ?

...