У меня есть таблица историй с большим количеством данных, мне надо достать определенные строки, определенного пользователя. На ларавель запрос выглядит так:
latest('id')
->where('user_id', '=', $userId)
->whereIn('type_id', [
HistoryType::WRITE_OFF,
HistoryType::WRITE_ON,
HistoryType::MAGIC,
])
->limit(100)
->get();
На sql так:
select * from `histories` where `user_id` = '1' and `type_id` in (5, 4, 6) order by `id` desc limit 100
Запрос простой, но не знаю как оптимизировать. Возможно ли это сделать без добавления индексов на столбцы, так как размер таблицы сильно увеличится