Новости
Столкнулся с необходимостью создания запроса с неколькими подряд 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 раз.
В систему управления производством Завод365 в службу главного механика внедренные бизнес-процессы приёмки ответственным за оборудование регламентов на техническое обслуживание оборудования
Читать далееДля удобного оформления заказа в калькуляторе и продажи продукции, в которой есть комплектующие к основному товару, мы предлагаем наше решение - набор правил совместимости продукции, успешно реализованное на проекте Profildoors.Trade.
Читать далееС введением адресного хранения в системе управления производством Завод365 мы переработали блок инвентаризации
Читать далееНа проекте Конструктор365 для компании Профильдорс Трейд наша команда успешно реализовала новый механизм привязки изображений товаров, направленный на повышение точности отображения продукции.
Читать далееВ системе управления производством Завод365 обновлен функционал производственных календарей.
Читать далееВ интерфейс расчета себестоимости изделия в системе Завод365 введены группы параметров для облегчения их ввода
Читать далее