Порядок сканирования (самый старый-самый младший или самый младший-самый старый) не имеет значения, поскольку требуется полное сканирование таблицы.Каждый ряд должен быть посещен.Хотя вы упоминаете « строку, которую я ищу», условие
.... where col = 'a'
может возвращать одну строку или 10 или 500 строк.SQLite не может просто остановиться и назвать это работой хорошего дня, когда встречается первая подходящая строка, если вы не используете директиву LIMIT.
РЕДАКТИРОВАТЬ: Однако вы можете использовать столбец меток времени, проиндексировать его изатем используйте встроенное представление для получения относительно недавних строк:
select * from
(
select * from T
where datecreated > {somerecentdate}
) as myView
where myView.someColumn = 'a'
или просто
select * from T where datecreated > {some date} and somecolumn = 'a'
Такой подход может быть итеративным процессом - если не возвращаются строки, вам может понадобитьсязапрос с более широким временным окном.Но если вы собираетесь индексировать дату создания, вы можете также проиндексировать [someColumn].