Новости
Столкнулся с необходимостью создания запроса с неколькими подряд LEFT JOIN.
INSERT INTO to_reserve_mcr (cid, to_reserve) SELECT distinct g.id, ROUND(SUM(pacr.volume_discontented), 5) FROM good AS g LEFT JOIN good_in_group as gig ON gig.good_id = g.id LEFT JOIN product_accounting_component_reserve as pacr ON pacr.component_id = g.id LEFT JOIN product_accounting_order as po ON pacr.order_id = po.id where FIND_IN_SET(gig.group_id, "125,132,160,233,136,252,134,313,162,312") AND (po.state <> "closed") GROUP BY g.id
Здесь product_accounting_order - таблица заказов.
По мере того, как база данных разрослась, запрос стал выполняться очень долго, вплоть до того, что апач обрывал соединение с браузером раньше, чем выполнялся запрос.
Долго пытался оптимизировать запрос, и заметил, что на самом деле, хоть число заказов растет, заказов невыполненных (state <> 'closed') все время ограниченно. Последовал совету Интернета, и открытые заказы перенес в маленький предварительный запрос
select id from product_accounting_order where state <> 'cancelled'
а результат вставляю в большой запрос:
INSERT INTO to_reserve_mcr (cid, to_reserve) SELECT distinct g.id, ROUND(SUM(pacr.volume_discontented), 5) FROM good AS g LEFT JOIN good_in_group as gig ON gig.good_id = g.id LEFT JOIN product_accounting_component_reserve as pacr ON pacr.component_id = g.id where FIND_IN_SET(pacr.order_id, "263,264,457,526,536,596,602,603") AND FIND_IN_SET(gig.group_id, "125,132,160,233,136,252,134,313,162,312") GROUP BY g.id
Время выполнения запроса сократилось в 10 раз.
Обновили дизайн, структурировали наши услуги, почистили портфолио от старых проектов
Читать далееДля проекта TCL мы разработали модуль рассылок информации по дилерской сети
Читать далееСистема управления производством Завод365 отслеживает сроки эксплуатации средств контроля и защиты (СК и СИЗ), а также проводит процедуру утверждения выдачи рабочему материальных ценностей
Читать далееПланы продаж, отчеты продаж, рекомендованные розничные цены
Читать далееВиды товаров, каталог товаров, коллекции, бренды, характеристики учета, поставки товаров, предзаказы
Читать далееКомпания Терморос занимается оптовыми продажами отечественной, европейской и азиатской продукции лидирующих брендов на рынке Danfoss, Purmo, Rifar, Grundfos, Baxi, Reflex, FAR, Jaga и собственной продукции. Группы компаний «Терморос» – Gekon, Euros, Germanium, Atlant. Основная задача — автоматизация оптовой торговли.
Читать далее