|
Есть ли возможность оптимизации запроса?
|
|||
---|---|---|---|
#18+
Есть таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
В ней 2 млн записей. Есть запрос для получения последних записей для каждого user_id (результат - 295 строк): Код: sql 1. 2.
Запрос выполняется 3-5 секунд, в зависимости от загрузки сервера. Есть ли возможность сделать этот запрос более оптимальным? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2021, 10:46 |
|
Есть ли возможность оптимизации запроса?
|
|||
---|---|---|---|
#18+
zuev56 Есть таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
В ней 2 млн записей. Есть запрос для получения последних записей для каждого user_id (результат - 295 строк): Код: sql 1. 2.
Запрос выполняется 3-5 секунд, в зависимости от загрузки сервера. Есть ли возможность сделать этот запрос более оптимальным? при наличии индекса по (user_id, last_seen) можно переписав запрос в виде Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
по мотивам моей старой презентации -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2021, 11:58 |
|
Есть ли возможность оптимизации запроса?
|
|||
---|---|---|---|
#18+
Maxim Boguk, индексы есть: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Но даже с ними предложенный скрипт выполняется более чем 70 секунд, что медленнее моего примерно в 20 раз :( С таким индексом выполнялось аж 82 секунды Код: plsql 1. 2. 3. 4.
А на мой текущий запрос индексы, кажется, никак не влияют ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2021, 15:22 |
|
Есть ли возможность оптимизации запроса?
|
|||
---|---|---|---|
#18+
zuev56, а кто просил делать индекс ON vk.activity_log USING btree (user_id, last_seen DESC NULLS LAST) когда надо индекс ON vk.activity_log USING btree (user_id, last_seen) -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2021, 16:44 |
|
|
start [/forum/topic.php?fid=53&fpage=12&tid=1994045]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 254ms |
total: | 382ms |
0 / 0 |