Major Posted April 25, 2013 Report Share Posted April 25, 2013 Всем добрый день.Есть вопрос о том как (каким способом - идеей) реализовать фильтрподобный как на http://hotline.ua/computer/noutbuki-netbuki/ Поясню : Выбираем один (или несколько )критерий подбора и фильтр перестраивается в зависимости от того какие товары удовлетворяют его параметрам. Т.е. выбрав только нетбуки - остаются фильтры под диагонали экранов 9, 10 , 12 , 13 другие - недоступны , т.к. с большим экраном уже ноутбуки.При этом есть возможность как более детально углубленно производить подбор из комплекта фильтра, т.е. например: все модели нетбуков (всех диагоналей) но только фирм Эйсер и Асус которые имеют беспроводный интерфейс WiFi. Почему неподходит тот фильтр который в базовой поставке симплы?Т.к. слишком сложный запрос при 1000 товарах занимает около 1 секунды при ненагруженном хостинге.Что для меня очень критично... Понятно что структура таблиц которые будут использоваться для ускорения (оптимизации) запроса должны быть немного другими. (Вопрос какими на ВАШ взгляд).Хранить все критерии в одной отдельной таблице - нецелесообразно , отдельными таблицами - как напримерТабл 1 - Свойства участвующие в фильтреТабл 2 - Таблица соответствий свойств и товаровИ т.д. Трудность пока в золотой середине между сложностью выборки при подборе фильтра и скоростью работы запроса.Высокая скорость - достигается при сложной структуре таблиц и резком увеличении кол-ва таблиц (практически на каждый параметр свойства фильтра - отдельная таблица).Если менять логику поиска и уменьшать таблицы участвующие в запросе - тогда усложняется запрос и соответсвенно уменьшается скорость выполнения запроса. Прошу помощи подсказать идею формирования сложных фильтров с минимальными затратами ресурсов хостинга как по памяти , так и по места и структуры БД. Еще одно малое отступление от темы - почему неиспользуется механизм кеширования? Директория кеша - есть но она пуста постоянно.Как включить механизм кеширования для частного случая фильтров подбора (именно из-них происходит торможение БД). Может кеширование спасет.И кстати повторяющиеся запросы к БД тоже можно былобы кешировать хоть в массив и записывать в файл кеша. Буду рад дельным советам - при детальных вопросах поясню подробнее что именно хочу получить.Заранее спасибо. Quote Link to post Share on other sites
osben Posted April 25, 2013 Report Share Posted April 25, 2013 я бы не сказал что стоит сильно оптимизировать. На данном механизме можно построить нормальные фильтры, понятно дело что скорее всего обычного хостинга не хватит, что придется брать VPS. У меня лично в поддержке есть 5 проектов где количество товаров от 7тыс - 22тыс / ~4тыс уников. Везде стоит VPS 1x2.6Ghz, 512 Мб ОП. Полет нормальный. Quote Link to post Share on other sites
Major Posted April 26, 2013 Author Report Share Posted April 26, 2013 Для osbenЕсли не затруднит показать пример такого сайта с динамическим фильтром как на Хотлайне - без кеша так сказать без изменения структуры БД и дополнительных таблиц. И еще открытый вопрос кеширования определенной части страницы или всей (некотрых страниц, разделов ) сайта.Как включить механизм кеширования (без мемкеша ) - есть ли он (механизм кеширования) вообще в КМС или его надо добалять.(напомню что директория cache - в базовой комплектации идет но она пустая).Для чего ? Хочу кешировать постоянно повторяющиеся запросы к БД и особо ТЯЖЕЛЫЕ запросы, потом кроном чистить или при аптедте таблиц (добавлении / изменении товара) или по времени 1-2 раза в сутки. Опять таки буду рад дельным и обосновательным ответам. Quote Link to post Share on other sites
osben Posted April 27, 2013 Report Share Posted April 27, 2013 Ответил в личку с примером. Quote Link to post Share on other sites
Major Posted April 29, 2013 Author Report Share Posted April 29, 2013 Вопрос по кешированию пока открытый , если есть скрытое кеширование в сипле - то рад об этом узнать по подробнее... Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.