Проблема производительности SQLite ORDER BY
У меня есть запрос с двумя объединениями (соединяющий три таблицы), который выполняется довольно быстро (обычно менее 1 мс). Если я сортирую результаты на основе индексированного столбца любой из трех таблиц, он все равно будет выполняться менее чем за 1 мс. Однако, когда я использую комбинацию двух столбцов (из двух разных таблиц) для сортировки, время выполнения составляет около 240 мс.
Нужно ли что-то вроде составного индекса для столбцов из разных таблиц? Я предполагаю, что это невозможно. Нужно ли использовать индексированные представления для достижения аналогичной цели? Или что-то не так с моим дизайном?
Я использую SQLite, и вот как выглядит мой запрос:
SELECT image.title,
project.title,
video.title
FROM image
JOIN video ON image.video_id=video.id
JOIN project ON project.id=video.project_id
ORDER BY image.video_id,
project.title LIMIT 5000;
1 ответ
Невозможно использовать индексы для ускорения сортировки по столбцам из двух разных таблиц.