|
оптимизация с limit/offset?
|
|||
---|---|---|---|
#18+
у меня такой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
он работает, но медленно когда количество строк много 100000 я думала использобать LIMIT в запросе, например 200. но все равно запрос выполняeтся в тем времени, как без LIMITа. оказывается, что с LIMITом весь запрос выполняeтся, потом offset количества трок отбрасываются, а потом limit количества строк возвращaются. рекомендуется использовать where, запомнить последний использованный ID и потом получать результаты, начиная с того ID. проблема в том, что view.a и view.b не всегда начнаются с 0/1, и мне никак получить последний использованный ID ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 15:57 |
|
оптимизация с limit/offset?
|
|||
---|---|---|---|
#18+
А клиент на что? Делаем начальную (самую начальную) выборку - получаем ID. Если "самая начальная" выборка это слишком сложно, то просто берем любой ID который есть. Запоминаем его в отдельной таблице или на клиенте и в следующий раз используем, при каждом использовании обновляем. Все просто. Но вообще, если запрос тормозит - надо смотреть на индексы. Сто тысяч строк это мелочи, если на таких объемах чувствуется торможение, то явно что-то очень не правильно в индексах и самом запросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 16:18 |
|
|
start [/forum/topic.php?fid=54&msg=39983559&tid=2008358]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 246ms |
total: | 398ms |
0 / 0 |