Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Неиспользование индексов в запросе с limit..offset...
|
|||
|---|---|---|---|
|
#18+
PostgreSQL 9.6.3 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit Столкнулся со странным поведение планировщика. Есть таблица такого рода: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. В нёй несколько миллионов строк. Решается такая задача: партнер в своём личном кабинете должен видеть таблицу своих заказов, с фильтром по датам, постраничным выводом и возможностью сортировки по разным столбцам. Решается это такого рода запросом: Код: sql 1. 2. 3. 4. И тут начинается такое. Если offset имеет малое значение, то индекс orders_partner_id_date_created_index не используется, и запрос занимает много времени, страница выводится долго. Например, в случае offset=10 получается так: Код: sql 1. 2. 3. 4. Однако, когда страницы листаются дальше, с какого-то значения offset вдруг этот индекс начинает работать и всё выводится очень и очень шустро. Например, вывод четвертой страницы: Код: sql 1. 2. 3. 4. план его выполнения: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Кто-нибудь с таким сталкивался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 17:15 |
|
||
|
Неиспользование индексов в запросе с limit..offset...
|
|||
|---|---|---|---|
|
#18+
ZayatsZ, криво...сть оптимизатора пж -- известный факт. математиксы там не ночевали. попробуйте так : Код: sql 1. 2. 3. 4. но пагинация оффсетом -- сама по себе кривое решение. к тому же есть подозрение, что ордер-ид внутри партнера 100%% коррелирует с дейт--криэйтед и с хорошей точностью можно так : Код: sql 1. 2. 3. 4. где в пределе можно перейти на пагинацию не оффсетом, а от достигнутого . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 17:26 |
|
||
|
Неиспользование индексов в запросе с limit..offset...
|
|||
|---|---|---|---|
|
#18+
qwwq, Первый вариант сработал, теперь индекс всегда используется. Жесть какая, однако. Вариант с пагинацией "от текущего" рассматривался - но кровь из носа нужна возможность перейти сразу на произвольную страницу. Спасибо большое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 17:36 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39822994&tid=1995174]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 251ms |

| 0 / 0 |
