Здравствуйте, IZM, Вы писали:
S>>Ну, это странно. Я предполагаю, что id в обеих таблицах объявлены как primary key, а SQLite вроде бы для них создаёт индексы. Так что можно рассчитвать на log(N).
IZM>А индексы на
IZM> -g_to.id и -g_from.id
IZM>есть?
Я про них и говорю. g_to и g_from — это алиасы для таблицы groups. В ней поле id должно быть объявлено как primary key. Если нет — это надо починить; если да — то sqlite сам создаст для них индексы.
IZM>в запросе именно по таким значениям идет соединение.
IZM>соединение ON -posts.to_id = g_to.id должно использовать индекс
Всё легко увидеть, написав перед запросом explain query plan.
Можете сходить по ссылке и поиграть:
https://www.db-fiddle.com/f/cwvYp2P2SB2a2HzVRK3ZWm/5