Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / оптимизация с limit/offset? / 3 сообщений из 3, страница 1 из 1
22.07.2020, 15:57
    #39982782
bb8
bb8
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация с limit/offset?
у меня такой запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
select view1.a, view1.b, tbl1.c. tbl1.d
from ...
join ... on ...
join ... on ...
join ... on ...
where view1.a > 0 and view1.b > 0
order by view1.a, view1.b

union all

select view2.a, view2.b, tbl2.c. tbl2.d
from ...
join ... on ...
join ... on ...
join ... on ...
where view2.a > 0 and view2.b > 0
order by view2.a, view2.b



он работает, но медленно когда количество строк много 100000
я думала использобать LIMIT в запросе, например 200.

но все равно запрос выполняeтся в тем времени, как без LIMITа.
оказывается, что с LIMITом весь запрос выполняeтся, потом offset количества трок отбрасываются, а потом limit количества строк возвращaются.

рекомендуется использовать where, запомнить последний использованный ID и потом получать результаты, начиная с того ID.

проблема в том, что view.a и view.b не всегда начнаются с 0/1, и мне никак получить последний использованный ID
...
Рейтинг: 0 / 0
23.07.2020, 16:18
    #39983215
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация с limit/offset?
А клиент на что?
Делаем начальную (самую начальную) выборку - получаем ID. Если "самая начальная" выборка это слишком сложно, то просто берем любой ID который есть. Запоминаем его в отдельной таблице или на клиенте и в следующий раз используем, при каждом использовании обновляем.
Все просто.

Но вообще, если запрос тормозит - надо смотреть на индексы. Сто тысяч строк это мелочи, если на таких объемах чувствуется торможение, то явно что-то очень не правильно в индексах и самом запросе.
...
Рейтинг: 0 / 0
24.07.2020, 12:08
    #39983559
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация с limit/offset?
White Owl,
может два отдельных запроса без юнион сделать?
Мне вообще эта идея с лимит - офсет на юнионе сомнительной кажется.
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / оптимизация с limit/offset? / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]