Я полагаю, что вы действительно хотите элементы, которые запланированы, но не проверены после этого планирования?
Разве обзоры не должны быть связаны с запланированными элементами, а не с элементами? Теперь вы должны сравнить даты, чтобы увидеть, какие отзывы идут после одного запланированного элемента, но до следующего. Кроме того, если элемент запланирован дважды с коротким промежутком времени, вы можете получить оба отзыва, относящиеся ко второму расписанию.
С этим изменением вы можете легко выделить непроверенные расписания:
select i.id, i.name, s.execute_at
from items i
inner join scheduled_items s on s.item_id = i.id
left join reviewed_items r on r.scheduled_items_id = s.id
where r.id is null
По вашему вопросу:
Я полагаю, что добавление индекса к
поля даты и времени не имеют никакого смысла
потому что мощность или уникальность
на этих полях очень высоки и индекс
не даст никакого (?) ускорения. Это
исправить?
Нет, это не правильно. Индекс может быть полезен, если количество элементов велико. По умолчанию создается индекс для уникального идентификатора таблицы, который, конечно, имеет максимально возможное количество элементов.