Оптимизация запроса к базе при случайном выборе товаров

MonsterWork

У кого то есть идеи по оптимизации запроса к базе при случайном выборе товаров? Проблема в том что количество товаров около 55 тыс. и при этом страница категории грузится около 6-10 сек.

20 октября 2016
  • Rat 20 октября 2016 12:32

    Как выглядит ваш запрос, который нужно оптимизировать?

  • MonsterWork 20 октября 2016 13:02

    простой запрос из productCollection с хэшом 'type/{$id}' и orderBy('rand()')

  • Владислав Горлов Webasyst 20 октября 2016 15:59

    Этот "простой запрос" выбирает все записи товаров с заданными типов, далее к каждой записи генерируется случайное число и добавляется.

    После чего из полученной временной таблицы выбираются первые несколько записей, отсортированных по добавленному случайному числу.

    Это очень не простая и недешевая операция.

    Правильно для вашей коллекции выбрать M записей со смещением rand(0,N-M), где N — общее количество товаров в коллекции.



Чтобы добавить комментарий, зарегистрируйтесь или войдите