- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
postavkin, скорей всего вы что-то не то делаете...
Вы, похоже, хотите закешировать все возможные комбинации параметров (фильтра товаров). Но зачем??? Что вам мешает сразу делать выборки товаров по комбинации параметров? Выборка медленная и вы хотите все возможные выборки заранее своеобразным образом закешировать? Лучше настроить правильно структуру данных, проиндексировать поля и тогда при правильном подходе у вас изначально будут выборки быстрыми и их не потребуется кешировать.
Но... я бы вообще базу не дергал, т.е. ни одного запроса к ней не делал бы, а использовал бы elasticsearch - там хоть сотни миллионов товаров можно на лету фильтровать.
Ребят, спасибо. Ну что тут сказать - самоучка.
Буду развиваться и изучать, то что вы написали.
Обычно это делается так: при посещении страницы с подбором - он кэшируется. А перебирать все варианты - смысла нет.
Обычно это делается так
Так - тоже не делается, кроме отдельных race conditions. Это знает любой профессиональный DBA
postavkin, реально надо
- не кэшировать результаты
- иметь составные индексы на все сочетания (от вырожденнного "1 поле" до "все" ) полей, используемых в WHERE, чтобы запрос в реальном времени был незаметен на фоне других задержек
- заиметь (хотя бы контрактно) правильного профессионального DBA, который пп 1-2 знает как азбуку профы и не парит мОзги себе и другим
а использовал бы elasticsearch
Ребятки, ну какой elasticsearch под 2 тысячи товаров, вы в своем уме? Давайте ещё кластер кассандры поднимем.
Так - тоже не делается, кроме отдельных race conditions.
Что-то вы ляпнули, сами не зная что. При чем тут race conditions? О чем вообще вы говорите?
иметь составные индексы на все сочетания (от вырожденнного "1 поле" до "все" ) полей, используемых в WHERE, чтобы запрос в реальном времени был незаметен на фоне других задержек
При правильном дизайне, составные индексы не нужны. Они даже на FLAT таблицах уже не нужны, не говоря о 5/6NF.
При правильном дизайне, составные индексы не нужны
А за базар ответить?! Ну типа показать "правильно задизайненную базу" со всеми делами без составных индексов и предъявить запрос и результаты (время) исполнения? Возьмем как у ТС - объект и 6 свойств в произвольном сочетании и комбинации. Тем более что я вижу
5/6NF
Вы это всерьез ?
Скорее всего и вовсе без индексов всё будет работать с базой на 2000 строк...
ЗЫ. Менял, кстати, в одном из дебилошопов типа престашопа, некоторые части так, чтобы вместо выборки из базы автогенерировался php-файл с функцией с одним switch (для вариантов в 10-100 строк). И учитывая сколько раз эти части вызывались даже был ощутимый профит. Да, можно и кешировать, но не всегда это удобнее и быстрее, а если есть некая функция импорта, то она легко может прям php-код "готовить".
Скорее всего и вовсе без индексов всё будет работать с базой на 2000 строк...
"Скорее всего" - лишнее. Все всегда будет работать без индексов, вопрос только во времени исполнения, а ТС "кэшированием для бедных" как раз в это прет. Да и наш "диспут" с Даном именно что не о принципиальной возможности, а о скорости.
И да, количество строк для SELECT на скорость не так сильно роляет, как вся фуфень из WHERE (если делать качественную оценку потерь времени, а не количественную)
Всего артикулов в базе: 3204349
Выборка товаров по критериям:
Бренд: Xiaomi, Samsung, LG, Huawei
CPU: 2,
RAM: 2048, 4096
Выполнение: 6-10 мс.
Составные индексы есть, но они в этом запросе не участвуют, и созданы они не для запросов, а для констрейнтов.
danforth, ну это ж не ответ, проше пана. Где, миль пардон, структура таблицы? А то ведь SELECT COUNT(*) это немного чуть более, чем полностью, не о "Выборка товаров по критериям: Бренд: Xiaomi, Samsung, LG, Huawei"