условие надо, а вот индекс совершенно излишний и будет только ухудшать ситуацию
в текущем запросе можно использовать покрывающий индекс, если добавлять в условие статус без индекса - это чтение строк с таблицы, больно если добавить статус в индекс - оверхед небольшой, но уходим от чтения строк в таблице
дак ты выполнял не запрос а какое-то недоразумение сгенерированное ОРМом вот в этом и проблема
тут согласен, но это недоразумение можно и переписать на твой запрос на языке ОРМ, и будет тоже хорошо, изначально написан запрос неверно, не я его писал, признаюсь честно.
в текущем запросе можно использовать покрывающий индекс, если добавлять в условие статус без индекса - это чтение строк с таблицы, больно если добавить статус в индекс - оверхед небольшой, но уходим от чтения строк в таблице
но MySQL не умеет юзать индексное соединять в лупе по 2м столбцам, по крайней мере 5ка точно, а индекс распухнет
вот если добавить в индекс option_id,status,deleted_at то это нам даст доступ index scan only, вот тут можно существенно выиграть, особенно для разряжённых фрагментированных таблиц
вот если добавить в индекс option_id,status,deleted_at то это нам даст доступ index scan only, вот тут можно существенно выиграть, особенно для разряжённых фрагментированных таблиц
это без разницы, тут даже выгоднее было бы сделать что то типа CREATE INDEX option_id INCLUDE (deleted_at,status) но это есть только в MSSQL'е, ну в постгресе мб