Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
28.07.2020, 21:11
|
|||
---|---|---|---|
|
|||
Фильтр товаров |
|||
#18+
Помогите, пожалуйста, с запросом. Необходимо сформировать источник данных для фильтра по характеристикам товара в интернет магазине с 500 000+ товаров. Напротив каждой характеристики должно быть количество товаров в магазине с этой характеристикой, в том числе 0 товаров. При этом после фильтрации по какой-либо характеристике количество должно пересчитываться с учетом уже выбранных пользователем в фильтре характеристик ( пример ). тестовые данные Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53.
мой вариант Моё решение: 1. некорректно считает количество товаров с данной характеристикой и уже выбранными пользователем 2. вызывает большие сомнения на предмет оптимальности относительно производительности Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2020, 09:58
|
|||
---|---|---|---|
|
|||
Фильтр товаров |
|||
#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. 24. 25. 26. 27. 28. 29. 30. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2020, 11:19
|
|||
---|---|---|---|
Фильтр товаров |
|||
#18+
1. Быстро не будет. Совсем. 2. Имхо, можно упростить Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
Еще можно попробовать кое-что материализовать Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Тогда CTE products будет выглядеть так Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&mobile=1&tid=1685830]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
49ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 262ms |
total: | 411ms |
0 / 0 |