Если вы выполните этот запрос:
select *
from tbl_name
where datetime_col < '2019-05-26 20:49:00'
Вы, вероятно, будете возвращать много и много данных, потому что - по вашему описанию - у вас есть "большая таблица". Затем вам нужно пройти через это, чтобы получить желаемые результаты.
Если вы выполните:
select *
from tbl_name
where datetime_col < '2019-05-26 20:49:00'
order by datetime_col desc;
Тогда я думаю, что MySQL будет использовать индекс и сможет возвращать нужные вам строки. Тем не менее, вы по-прежнему возвращаете много и много строк. Вы должны проверить, в порядке ли производительность.
Запрос вашего коллеги:
select *
from tbl_name
where datetime_col < '2019-05-26 20:49:00' and
datetime_col >= '2019-05-26 20:44:00';'
Возвращает только те строки, которые вы хотите - предположительно, гораздо меньшего набора. Для поиска этих строк следует использовать индекс.
Я ожидаю, что ваш коллега прав. Даже если строк не существует, и вам нужно выполнить другой запрос, это, вероятно, быстрее, чем возврат почти всей таблицы.