Страница 1 из 1

Долго выгружаются товары на сайт

Добавлено: 05 дек 2018 13:14
masterevn
Выгружаю на сайт самопис 10 товаров, товары выгружаются +- 10 минут
Сервер мощный 6 ядерный 2.2 Гц ,16 гб оперативки

Можно как то ускорить процесс выгрузки ?
может нужно переписать код SQL?

Всего в базе 26 000 товаров

Код экспорта

Код: Выделить всё

UPDATE naltovarok SET pli=2 WHERE pli=1 AND id_post IN (SELECT DISTINCT c.contractor_comment from etrade_products p, etrade_contractor c where p.supply_id=c.contractor_id);;;

UPDATE etrade_products SET row_exist=1 WHERE tov_art IN (SELECT id_tov FROM naltovarok);;;

INSERT INTO naltovarok 
(naim,
cenaok,
cena0,
minQty,
balance,
id_cat,
id_tov,
url,
art,
cena_dos,
isNovelty,
size,
id_post,
bazedin,
trademark,
art_post,
img1sm,
img2big,
pli,
moder,
price_cost,
price_update
)


SELECT

tov_name,
tov_price,
tov_price,
1,
tov_quantity,
tov_cat_id,
tov_art,
tov_seo_url,
tov_art,
tov_delivery_cost,
tov_new,
tov_size,
etrade_contractor.contractor_comment,
tov_unit_measure,
manufac_name,
tov_art_supply,
img1sm,
img2big,
1,
1,
price_cost,
price_update
FROM etrade_products, etrade_contractor WHERE etrade_products.row_exist=0 AND etrade_products.supply_id = etrade_contractor.contractor_id;;;

UPDATE naltovarok, etrade_products as e SET 
naltovarok.naim = e.tov_name,
naltovarok.cenaok = e.tov_price,
naltovarok.cena0 = e.tov_price,
naltovarok.minQty = 1,
naltovarok.balance = e.tov_quantity,
naltovarok.id_cat = e.tov_cat_id,
naltovarok.id_tov = e.tov_art,
naltovarok.url = e.tov_seo_url,
naltovarok.art = e.tov_art,
naltovarok.cena_dos = e.tov_delivery_cost,
naltovarok.isNovelty =  e.tov_new,
naltovarok.size = e.tov_size,
naltovarok.bazedin =  e.tov_unit_measure,
naltovarok.trademark = e.manufac_name,
naltovarok.art_post = e.tov_art_supply,
naltovarok.img1sm = e.img1sm,
naltovarok.img2big = e.img2big,
naltovarok.pli = 1,
naltovarok.price_cost = e.price_cost,
naltovarok.price_update = e.price_update

WHERE e.row_exist=1 AND e.tov_art=naltovarok.id_tov;;;


UPDATE naltovarok SET balance=0 WHERE pli=2 AND id_post IN (SELECT DISTINCT c.contractor_comment from etrade_products p, etrade_contractor c where p.supply_id=c.contractor_id);;;

insert into naltovarcat (id_tov, id_cat) SELECT  p.tov_art, c.tov_cat_id FROM etrade_products AS p, etrade_products_cats AS c WHERE p.tov_id=c.tov_id AND NOT EXISTS (SELECT id_tov, id_cat FROM naltovarcat WHERE id_tov=p.tov_art AND id_cat=c.tov_cat_id)

Re: Долго выгружаются товары на сайт

Добавлено: 05 дек 2018 16:30
TechAdmin
Попробуйте убрать SQL запросы и выгрузить только товары во временные таблицы, скорость выше и нет?
Если выше, проблема в запросах. Стоит обратить внимание на конструкции вида "IN (...)", как правило это всегда медленно, стоит заменить на JOIN.