|
|
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Ребят, есть запрос, все работает, но как обычно хотелось бы поскорее(т.к. похожих запросов на странице до 5). Сча время занимает от 400-500мс(по замерам дебагера yii2). Есть ли возможность как то "ускорить" его выполнение? Ессно кидаю все в мемкеш, но когда кеш пуст - страница может загружаться до 5 секунд(дебаггер показывает как раз долгое исполнение скл запросов). Собственно ближе к делу: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Сам "виновник" Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:02:36 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Прикладываю explain Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:04:31 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
araman, Показывайте план запроса. Зачем поле `ip` имеет тип bigint? Для ipv4 достаточно int, а для ipv6 bigint мал. Попробуйте создать индекс (uid, ip). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:12:53 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Нет, что то у меня в int не влезает, кодирую ip так: Код: php 1. План запроса, это что? :) Разве не эксплайн? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:14:26 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Индекс попробовал - без изменений. По крайней мере время выполнения запроса не изменилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:17:04 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
aramanНет, что то у меня в int не влезает, кодирую ip так:Точнее, это должен быть unsigned int. aramanПлан запроса, это что? :) Разве не эксплайн?Да, он. Это я слишком долго свой пост писал. Отвлекают :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:17:59 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
aramanИндекс попробовал - без изменений. По крайней мере время выполнения запроса не изменилось.Именно такой индекс (т.е. именно из этих полей и именно в таком порядке)? ANALYZE TABLE после этого делали? План изменился? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:19:04 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Сча вот так, да, сделал ANALYZE TABLE Експлайн Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:23:14 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
А если запрос переписать так: Код: sql 1. 2. 3. 4. ? Еще можно попробовать индекс из тех же двух полей, но в обратном порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:27:00 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Попробовал в обратном порядке - никакого прироста. Запрос ваш работает быстро, но он немного отличен от изначального. Там у меня этот запрос в подзапросе стоит. Он отдельно тоже быстро отрабатывает. Проблема в каунте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:40:43 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
aramanЗапрос ваш работает быстро, но он немного отличен от изначального.Отличен, но результат должен выдавать тот же. aramanТам у меня этот запрос в подзапросе стоит. Он отдельно тоже быстро отрабатывает. Проблема в каунте.Показывайте целиком. А то так гадать можно долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:43:53 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Вроде бы фильтр NOT IN вынуждает применять FULL SCAN? То есть индексы не получится задействовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:47:13 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Разве что покрывающий индекс (uid, ip, domain_id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:54:09 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Маленько код оптимизировал, сча выдается такое: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:55:55 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 10:59:08 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
если проблема во внешнем COUNT(*) пробуйте хитрить Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 11:02:17 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Внешнего уже нет, я код подрефакторил актив рекорда. Сча выплевывает квери, что выше. Честно говоря, разительно помогло - поставить для дата провайдера лимит например в 500 записей, тем самым запрос на подсчет строк игнорируется и страница грузится молниеносно. Наверно так и оставлю пока, в данном случае это решение прокатит ибо все записи выводить и не нужно, более 500 никто не будет смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 11:04:31 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Но тем не менее, вопрос хотелось бы решить, ибо ставить тотал каунт - не решение вопроса. Квери, что выше - как то можно еще куда то ускорить или уже предел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 11:07:43 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Cygapb-007Разве что покрывающий индекс (uid, ip, domain_id)Да, точно. Я это же и хотел предложить, но поле domain_id упустил из виду, т.к. оно хоть и упоминается, но фактически не используется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 11:37:41 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Ну оно нужно немного для других выборок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 12:06:51 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
aramanНу оно нужно немного для других выборок.Тогда другие выборки нужно оптимизировать отдельно. Нельзя оптимизировать запросы вообще. Можно оптимизировать только конкретные запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 12:13:45 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Ну я конкретный и написал, другие работают нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 13:22:54 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
aramanНу я конкретный и написал, другие работают нормально.Конкретный я показал как лучше переписать и, по вашим же словам, он работает быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 13:33:53 |
|
||
|
Можно ли оптимизировать такой запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо. Более менее "пригладил", стало побыстрее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2015, 13:39:06 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39042107&tid=1832759]: |
0ms |
get settings: |
12ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 306ms |

| 0 / 0 |
