|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
Подскажите как можно оптимизировать выполнение этого запроса, он выводит список из таблицы с последними данными из таблицы коментов авторselect * FROM data c left join data_status s on s.id = c.status left join comments cc2 on cc2.objectid = c.id and cc2.id = ( select com.id from comments com where com.objectid = c.id order by com.dat desc limit 1 ) ORDER BY s.name ASC LIMIT 0, 50; ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2022, 18:57 |
|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
Блин, кто так форматирует... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Какая ТОЧНО версия MySQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2022, 22:42 |
|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
5.7.37-0ubuntu0.18.04.1-log ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2022, 05:57 |
|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Необходимо наличие индекса comments(objectid, dat) . PS. Убедись, что в обоих случаях нужен именно LEFT JOIN. Может, хватит и INNER? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2022, 13:15 |
|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
Не получилось. Кажется тут ошибка (c1): FROM comments c1 GROUP BY c2.objectid Если исправляем на c2, то множатся записи в join, в зависимости от количества комментариев, а должен быть только один последний ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2022, 17:11 |
|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
askdfasdf111 Кажется тут ошибка (c1): FROM comments c1 Да, конечно. Алиас c2 . askdfasdf111 множатся записи в join DISTINCT ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2022, 17:16 |
|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
Без distinct есть возможность? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2022, 17:29 |
|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
Any ideas? Получается мой вариант из первого поста самый оптимальный? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2022, 16:49 |
|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
запрос был офигенный, не докопаешься, только надо знать индексы на таблице, чтобы что то оптимизировать, скорее всего индексов нужных не хватает ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2022, 03:54 |
|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
Понял, будем играть с индексами ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2022, 05:05 |
|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
askdfasdf111 Получается мой вариант из первого поста самый оптимальный? Не уверен. Если конечный результат сортируется по полю из data_status, какой смысл прицеплять его левым джойном? Ну, т.е. Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2022, 07:39 |
|
Нужна помощь с оптимизацией SQL запроса
|
|||
---|---|---|---|
#18+
paver askdfasdf111 Получается мой вариант из первого поста самый оптимальный? Не уверен. Если конечный результат сортируется по полю из data_status, какой смысл прицеплять его левым джойном? Ну, т.е. Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Поле Статус может быть не заполнено ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2022, 15:01 |
|
|
start [/forum/topic.php?fid=47&msg=40135962&tid=1827767]: |
0ms |
get settings: |
25ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
256ms |
get tp. blocked users: |
1ms |
others: | 3252ms |
total: | 3613ms |
0 / 0 |