- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день.
Столкнулся с проблемой скорости загрузки страниц на каталогах подарков http://begift.ru/ и http://begift.com.ua/ На сайте каждый товар имеет ряд параметров, которые его характеризуют. Параметры, в свою очередь, разбиты по категориям. Например, товар: цветы имеют параметры «Праздник» – 8 Марта, 14 Февраля… и «Кому подарить»: Маме, Жене, Девушке и т.д. Пользователь может свободно комбинировать параметры, на основе которых ему показываются подходящие товары. Пытаюсь оптимизировать данную страницу, поскольку время генерации составляет неприличные 10-15 сек: http://tools.pingdom.com/fpt/#!/cmMCQJ/http://begift.com.ua/chto-podarit-na-novyj-god-iz-igrushek/
Подбор товара осуществляется алгоритмом: параметры внутри категории объединяются оператором ИЛИ, сами категории – оператором И. Страница, кроме основного списка, показывает также количество подарков, которое будет получено путем комбинирования уже выбранных и дополнительных параметров. Этот расчет также происходит по тому же алгоритму. Таким образом, мы имеем около 30 таких выборок на каждую загрузку страницы. В большинстве случаев используем подготовленные запросы, но для таких страниц запрос полностью генерируется в php коде вместе с параметрами. Он довольно объемный и плохо оптимизируется с самой базой. Я уже реализовал кэширование (сохраняя результаты всех вычислений для каждой страницы) на стороне сервера. Так как стоимость товара и его наличие обновляется, то этот кэш нужно обновлять раз в 1-2 дня. Страниц около 3000, если кэшировать каждую каждый день, то только на кэширование уйдет 10 часов.
Хочу провести сравнительные тесты разных альтернативных алгоритмов. Возможно, у кого-то есть опыт в таких задачах. Буду благодарен за совет.
мы догадаться должны как у вас данные хранятся, какими запросами получаются? какие советы вы ждете? альтернативный алгоритм один - правильная БД с индексами, и правильный код...
мы имеем около 30 таких выборок на каждую загрузку страницы.
умеючи можно и по 300 запросов на страницу накодить...
зы. на первый взгляд как-то сложно все, вам сначала в "Юзабилити" стоит проконсультироваться)) главный вопрос - зачем в меню слева вы цифры пересчитываете? ничего не понятно из-за этого... в меню Мужу(363), выбираю, на странице уже - Что подарить мужу (Всего отобрано идей подарков: 163) куда еще 200 делись? и как быть если я хочу выбрать подарок жене, любимой и девушке одновременно?
мы догадаться должны как у вас данные хранятся, какими запросами получаются?
Ок, кода много, но попытаюсь расписать общую схему:
Структура базы вида:
Пример запроса:
На входе имеем поиск по набору параметров 1,2,3,4,5,6
Параметры разбиты по категориям вроде:
1: {1,4},
2: {2,3,6},
3: {5}
php-код генерит запрос вида :
какие советы вы ждете?
Возможно, кто-то уже решал подобную проблему и сможет предложить оптимизацию.
Пока люди подсказали как оптимизировать саму базовую выборку менее ресурсоёмкими для mysql запросами - через джойны и групповыми функциями с хевингами. Но всё равно каждый из таких запросов надо генерировать из php согласно разбитию на категории, а потому весь список слева одним запросом не получить.
зы. на первый взгляд как-то сложно все, вам сначала в "Юзабилити" стоит проконсультироваться)) главный вопрос - зачем в меню слева вы цифры пересчитываете? ничего не понятно из-за этого... в меню Мужу(363), выбираю, на странице уже - Что подарить мужу (Всего отобрано идей подарков: 163) куда еще 200 делись?
Это замечание уже высказывали, действительно немного непонятно - подарки группируются по возможности в идеи, а потому идей 163, а всего подарков 363. Вот этой надписи про "всего подарков" и не хватает.
Сами цифры показывают как добавление фильтра отразится на результатах поиска.
и как быть если я хочу выбрать подарок жене, любимой и девушке одновременно?
Раньше можно было :) Но наш СЕО-специалист просил сократить количество страниц, потому мы отсеяли часть комбинаций, которые не столь информативны.
Но юзабилити это уже действительно вопрос для другой ветки форума)