Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Очень сильно тормозит ИМ 12000 товаров


Recommended Posts

Добрый день! версия движка 2.1.0.2. Стандартный набор модулей и шаблон shop store 2. При фильтрации через мега фильтр про, время ожидания 10-15 секунд. При переходах по категориям, время до 20 секунд. В чём может быть проблема? Лог прикрепил: 

 

----------------------

Страница:/zerkala/zerkala-po-naznacheniyu/?mfp=5-razmer-zerkal[%D0%9E%D1%82%20100%20%D0%B4%D0%BE%20109%20%D1%81%D0%BC]&mfilterAjax=1&mfilterIdx=1&mfilterBTypes=price%2Csearch%2Cattribute&mfilterPath=61_10003&_=1504817676820
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 455.02мс 

SELECT COUNT(DISTINCT `product_id`) AS `total` FROM(SELECT DISTINCT `p`.`product_id` FROM oc_category_path cp LEFT JOIN oc_product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id)    WHERE `p`.`date_available` <= NOW() AND `p`.`status` = '1' AND `cp`.`path_id` IN(10003) AND  pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND `cp`.`path_id` IN(10003)) AS `tmp` WHERE `product_id` IN( 
					SELECT 
						`product_id` 
					FROM 
						`oc_product_attribute`
					WHERE 
						( REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('От 100 до 109 см', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/От 100 до 109 см/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('От 100 до 109 см/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/От 100 до 109 см', ' ', ''), '
', ''), '
', '') ) AND
						`language_id` = 1 AND
						`attribute_id` = 5 
				)

----------------------

Страница:/zerkala/zerkala-po-naznacheniyu/?mfp=5-razmer-zerkal[%D0%9E%D1%82%20100%20%D0%B4%D0%BE%20109%20%D1%81%D0%BC]&mfilterAjax=1&mfilterIdx=1&mfilterBTypes=price%2Csearch%2Cattribute&mfilterPath=61_10003&_=1504817676820
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 647.35мс 

SELECT * FROM(SELECT p.product_id, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM oc_category_path cp LEFT JOIN oc_product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id)    WHERE `p`.`date_available` <= NOW() AND `p`.`status` = '1' AND `cp`.`path_id` IN(10003) AND  pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND `cp`.`path_id` IN(10003) GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC ) AS `tmp` WHERE `product_id` IN( 
					SELECT 
						`product_id` 
					FROM 
						`oc_product_attribute`
					WHERE 
						( REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('От 100 до 109 см', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/От 100 до 109 см/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('От 100 до 109 см/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/От 100 до 109 см', ' ', ''), '
', ''), '
', '') ) AND
						`language_id` = 1 AND
						`attribute_id` = 5 
				) LIMIT 0,45

----------------------

Страница:/zerkala/zerkala-po-naznacheniyu/?mfp=5-razmer-zerkal[%D0%9E%D1%82%20100%20%D0%B4%D0%BE%20109%20%D1%81%D0%BC]&mfilterAjax=1&mfilterIdx=1&mfilterBTypes=price%2Csearch%2Cattribute&mfilterPath=61_10003&_=1504817676820
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/catalog/model/module/mega_filter.php
Время выполнения: 9037.38мс 


			SELECT
				`a`.`attribute_id`,
				REPLACE(REPLACE(TRIM(pa.text), '
', ''), '
', '') AS `txt`,
				`ad`.`name`,
				`agd`.`name` AS `gname`,
				`agd`.`attribute_group_id`
			FROM
				`oc_product` AS `p`
			INNER JOIN
				`oc_product_to_store` AS `pts`
			ON
				`p`.`product_id` = `pts`.`product_id` AND `pts`.`store_id` = 0
			INNER JOIN
				`oc_product_attribute` AS `pa`
			ON
				`p`.`product_id` = `pa`.`product_id` AND `pa`.`language_id` = 1
			INNER JOIN
				`oc_attribute` AS `a`
			ON
				`a`.`attribute_id` = `pa`.`attribute_id`
			INNER JOIN
				`oc_attribute_description` AS `ad`
			ON
				`ad`.`attribute_id` = `a`.`attribute_id` AND `ad`.`language_id` = 1
			INNER JOIN
				`oc_attribute_group` AS `ag`
			ON
				`ag`.`attribute_group_id` = `a`.`attribute_group_id`
			INNER JOIN
				`oc_attribute_group_description` AS `agd`
			ON
				`agd`.`attribute_group_id` = `ag`.`attribute_group_id` AND `agd`.`language_id` = 1
			
			INNER JOIN
				`oc_product_to_category` AS `p2c`
			ON
				`p2c`.`product_id` = `p`.`product_id`
		
			INNER JOIN
				`oc_category_path` AS `cp`
			ON
				`cp`.`category_id` = `p2c`.`category_id`
		
			WHERE
				`p`.`date_available` <= NOW() AND `p`.`status` = '1' AND `cp`.`path_id` IN(10003)
			GROUP BY
				`txt`, `pa`.`attribute_id`
			HAVING 
				`txt` != ''
			ORDER BY
				`txt`
		

----------------------

Страница:/zerkala/zerkala-po-naznacheniyu/?mfp=5-razmer-zerkal[%D0%9E%D1%82%20100%20%D0%B4%D0%BE%20109%20%D1%81%D0%BC]&mfilterAjax=1&mfilterIdx=1&mfilterBTypes=price%2Csearch%2Cattribute&mfilterPath=61_10003&_=1504817676820
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/catalog/model/module/mega_filter.php
Время выполнения: 508.79мс 

SELECT MIN(`price`) AS `p_min`, MAX(`price`) AS `p_max` FROM( SELECT `price_tmp` AS `price` FROM( 
			SELECT
				
			IFNULL( (SELECT `price` FROM `oc_product_special` AS `ps` WHERE `ps`.`product_id` = `p`.`product_id` AND `ps`.`customer_group_id` = '1' AND ((`ps`.`date_start` = '0000-00-00' OR `ps`.`date_start` < NOW()) AND (`ps`.`date_end` = '0000-00-00' OR `ps`.`date_end` > NOW())) ORDER BY `ps`.`priority` ASC, `ps`.`price` ASC LIMIT 1), IFNULL( (SELECT `price` FROM `oc_product_discount` AS `pd2` WHERE `pd2`.`product_id` = `p`.`product_id` AND `pd2`.`customer_group_id` = '1' AND `pd2`.`quantity` = '1' AND ((`pd2`.`date_start` = '0000-00-00' OR `pd2`.`date_start` < NOW()) AND (`pd2`.`date_end` = '0000-00-00' OR `pd2`.`date_end` > NOW())) ORDER BY `pd2`.`priority` ASC, `pd2`.`price` ASC LIMIT 1), `p`.`price` ) ) AS `price_tmp`
		,`p`.`product_id`
			FROM
				`oc_product` AS `p`
			INNER JOIN
				`oc_product_description` AS `pd`
			ON
				`pd`.`product_id` = `p`.`product_id` AND `pd`.`language_id` = 1
			
				INNER JOIN
					`oc_product_to_store` AS `p2s`
				ON
					`p2s`.`product_id` = `p`.`product_id` AND `p2s`.`store_id` = 0
			
			INNER JOIN
				`oc_product_to_category` AS `p2c`
			ON
				`p2c`.`product_id` = `p`.`product_id`
		
			INNER JOIN
				`oc_category_path` AS `cp`
			ON
				`cp`.`category_id` = `p2c`.`category_id`
		
			WHERE
				`p`.`date_available` <= NOW() AND `p`.`status` = '1' AND `cp`.`path_id` IN(10003)
			
		 ) AS `tmp`  WHERE `product_id` IN( 
					SELECT 
						`product_id` 
					FROM 
						`oc_product_attribute`
					WHERE 
						( REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('От 100 до 109 см', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/От 100 до 109 см/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('От 100 до 109 см/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/От 100 до 109 см', ' ', ''), '
', ''), '
', '') ) AND
						`language_id` = 1 AND
						`attribute_id` = 5 
				) ) AS `tmp` 

----------------------

Страница:/zerkala/zerkala-po-naznacheniyu/?mfp=5-razmer-zerkal[%D0%9E%D1%82%20100%20%D0%B4%D0%BE%20109%20%D1%81%D0%BC]&mfilterAjax=1&mfilterIdx=1&mfilterBTypes=price%2Csearch%2Cattribute&mfilterPath=61_10003&_=1504817676820
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/catalog/model/module/mega_filter.php
Время выполнения: 686.29мс 

SELECT MIN(`price`) AS `p_min`, MAX(`price`) AS `p_max` FROM( SELECT `price_tmp` AS `price` FROM( 
			SELECT
				
			IFNULL( (SELECT `price` FROM `oc_product_special` AS `ps` WHERE `ps`.`product_id` = `p`.`product_id` AND `ps`.`customer_group_id` = '1' AND ((`ps`.`date_start` = '0000-00-00' OR `ps`.`date_start` < NOW()) AND (`ps`.`date_end` = '0000-00-00' OR `ps`.`date_end` > NOW())) ORDER BY `ps`.`priority` ASC, `ps`.`price` ASC LIMIT 1), IFNULL( (SELECT `price` FROM `oc_product_discount` AS `pd2` WHERE `pd2`.`product_id` = `p`.`product_id` AND `pd2`.`customer_group_id` = '1' AND `pd2`.`quantity` = '1' AND ((`pd2`.`date_start` = '0000-00-00' OR `pd2`.`date_start` < NOW()) AND (`pd2`.`date_end` = '0000-00-00' OR `pd2`.`date_end` > NOW())) ORDER BY `pd2`.`priority` ASC, `pd2`.`price` ASC LIMIT 1), `p`.`price` ) ) AS `price_tmp`
		,`p`.`product_id`
			FROM
				`oc_product` AS `p`
			INNER JOIN
				`oc_product_description` AS `pd`
			ON
				`pd`.`product_id` = `p`.`product_id` AND `pd`.`language_id` = 1
			
				INNER JOIN
					`oc_product_to_store` AS `p2s`
				ON
					`p2s`.`product_id` = `p`.`product_id` AND `p2s`.`store_id` = 0
			
			INNER JOIN
				`oc_product_to_category` AS `p2c`
			ON
				`p2c`.`product_id` = `p`.`product_id`
		
			INNER JOIN
				`oc_category_path` AS `cp`
			ON
				`cp`.`category_id` = `p2c`.`category_id`
		
			WHERE
				`p`.`date_available` <= NOW() AND `p`.`status` = '1' AND `cp`.`path_id` IN(10003)
			
		 ) AS `tmp`  WHERE `product_id` IN( 
					SELECT 
						`product_id` 
					FROM 
						`oc_product_attribute`
					WHERE 
						( REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('От 100 до 109 см', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/От 100 до 109 см/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('От 100 до 109 см/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/От 100 до 109 см', ' ', ''), '
', ''), '
', '') ) AND
						`language_id` = 1 AND
						`attribute_id` = 5 
				) ) AS `tmp` 

----------------------

Страница:/zerkala/zerkala-po-naznacheniyu/?mfp=5-razmer-zerkal[%D0%9E%D1%82%20100%20%D0%B4%D0%BE%20109%20%D1%81%D0%BC]&mfilterAjax=1&mfilterIdx=1&mfilterBTypes=price%2Csearch%2Cattribute&mfilterPath=61_10003&_=1504817676820
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/catalog/model/module/mega_filter.php
Время выполнения: 1160.36мс 


			SELECT 
				REPLACE(REPLACE(TRIM(`text`), '
', ''), '
', '') AS `text`, `attribute_id`, COUNT( DISTINCT `tmp`.`product_id` ) AS `total`
			FROM( 
			SELECT
				`pa`.`attribute_id`,`p`.`product_id`,`pa`.`text`
			FROM
				`oc_product` AS `p`
			INNER JOIN
				`oc_product_attribute` AS `pa`
			ON
				`pa`.`product_id` = `p`.`product_id` AND `pa`.`language_id` = '1'
			
				INNER JOIN
					`oc_product_to_store` AS `p2s`
				ON
					`p2s`.`product_id` = `p`.`product_id` AND `p2s`.`store_id` = 0
			
			INNER JOIN
				`oc_product_to_category` AS `p2c`
			ON
				`p2c`.`product_id` = `p`.`product_id`
		
			INNER JOIN
				`oc_category_path` AS `cp`
			ON
				`cp`.`category_id` = `p2c`.`category_id`
		
			WHERE
				`p`.`date_available` <= NOW() AND `p`.`status` = '1' AND `cp`.`path_id` IN(10003)
		 ) AS `tmp` 
				 WHERE `tmp`.`attribute_id` NOT IN(5) AND `product_id` IN( 
					SELECT 
						`product_id` 
					FROM 
						`oc_product_attribute`
					WHERE 
						( REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('От 100 до 109 см', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/От 100 до 109 см/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('От 100 до 109 см/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/От 100 до 109 см', ' ', ''), '
', ''), '
', '') ) AND
						`language_id` = 1 AND
						`attribute_id` = 5 
				) 
			GROUP BY 
				`text`, `attribute_id`
		

----------------------

Страница:/zerkala/zerkala-po-naznacheniyu/?mfp=5-razmer-zerkal[%D0%9E%D1%82%20100%20%D0%B4%D0%BE%20109%20%D1%81%D0%BC]&mfilterAjax=1&mfilterIdx=1&mfilterBTypes=price%2Csearch%2Cattribute&mfilterPath=61_10003&_=1504817676820
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/catalog/model/module/mega_filter.php
Время выполнения: 1437.17мс 


			SELECT 
				REPLACE(REPLACE(TRIM(`text`), '
', ''), '
', '') AS `text`, `attribute_id`, COUNT( DISTINCT `tmp`.`product_id` ) AS `total`
			FROM( 
			SELECT
				`pa`.`attribute_id`,`p`.`product_id`,`pa`.`text`
			FROM
				`oc_product` AS `p`
			INNER JOIN
				`oc_product_attribute` AS `pa`
			ON
				`pa`.`product_id` = `p`.`product_id` AND `pa`.`language_id` = '1'
			
				INNER JOIN
					`oc_product_to_store` AS `p2s`
				ON
					`p2s`.`product_id` = `p`.`product_id` AND `p2s`.`store_id` = 0
			
			INNER JOIN
				`oc_product_to_category` AS `p2c`
			ON
				`p2c`.`product_id` = `p`.`product_id`
		
			INNER JOIN
				`oc_category_path` AS `cp`
			ON
				`cp`.`category_id` = `p2c`.`category_id`
		
			WHERE
				`p`.`date_available` <= NOW() AND `p`.`status` = '1' AND `cp`.`path_id` IN(10003)
		 ) AS `tmp` 
				 
			GROUP BY 
				`text`, `attribute_id`
		

----------------------

 

Надіслати
Поділитися на інших сайтах


Сносите MFP
И проверяйте без него
Запросы просто ужасно тормозные
Куча COUNT, OR, JOIN да еще не по индексам и с полным перебором базы 

LIKE REPLACE(REPLACE(REPLACE('%/От 100 до 109 см/%'

 

Надіслати
Поділитися на інших сайтах

Снёс фильтр. Без него всё гораздо шустрее стало. Можно ли считать этот результат нормальным? markimaxэто фильтр косячный? А что можно сделать, чтобы работало по индексам? AWARO,  так денег не хватит покупать и сносить). Что с ним не так?

----------------------

Страница:/osveshenie/osveshenie-po-naznacheniyu/
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 127.76мс 

SELECT p.product_id, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM oc_product_to_category p2c LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id = '10004' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,45

----------------------

Страница:/aksessuary/aksessuary-po-naznacheniyu/dozatory-zhidkogo-myla/
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 14.61мс 

SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product_to_category p2c LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id = '10017'

----------------------

Страница:/aksessuary/aksessuary-po-naznacheniyu/dozatory-zhidkogo-myla/
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 24.32мс 

SELECT p.product_id, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM oc_product_to_category p2c LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id = '10017' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,45

----------------------

Страница:/zerkala/zerkala-po-naznacheniyu/
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 35.38мс 

SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product_to_category p2c LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id = '10003'

----------------------

Страница:/zerkala/zerkala-po-naznacheniyu/
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 95.82мс 

SELECT p.product_id, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM oc_product_to_category p2c LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id = '10003' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,45

----------------------

Страница:/polotencesushitely/
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 10.04мс 

SELECT * FROM oc_product_option po LEFT JOIN `oc_option` o ON (po.option_id = o.option_id) LEFT JOIN oc_option_description od ON (o.option_id = od.option_id) WHERE po.product_id = '20649' AND od.language_id = '1' ORDER BY o.sort_order

----------------------

Страница:/viz-079
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/catalog/model/module/product_auto_related.php
Время выполнения: 376.7мс 

SELECT p.product_id, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM oc_category_path cp LEFT JOIN oc_product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND cp.path_id = '69' AND  LCASE(pd.name) LIKE '%Светильник%' AND  LCASE(pd.name) LIKE '%40%' GROUP BY p.product_id ORDER BY LCASE(p.product_id) DESC, LCASE(pd.name) DESC LIMIT 0,1

----------------------

Страница:/viz-079
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/catalog/model/module/byseries.php
Время выполнения: 63.27мс 

SELECT IF(t1.cprice>t1.price,1,-1)*(t1.cprice-t1.price),t1.rnd,t1.product_id,name,text,t2.attribute_id FROM (SELECT RAND() as rnd,pa2.product_id,pr.price,cpr.price as cprice,count(pa2.attribute_id) as quan FROM oc_product_attribute pa1 INNER JOIN oc_product_attribute pa2 ON (pa1.attribute_id = pa2.attribute_id and pa1.text = pa2.text and pa2.product_id <> pa1.product_id and pa1.language_id = pa2.language_id) INNER JOIN oc_product pr ON (pa2.product_id = pr.product_id and pr.status = 1) LEFT JOIN oc_product cpr ON (pa1.product_id = cpr.product_id) WHERE pa1.product_id = '167' AND pa1.language_id = '1' AND (pa2.attribute_id = '4') GROUP BY pa2.product_id,pr.price,cpr.price having quan >= 1) t1 LEFT JOIN oc_product_attribute t2 ON (t2.product_id = t1.product_id) LEFT JOIN oc_attribute_description ad ON (ad.attribute_id = t2.attribute_id) INNER JOIN oc_product_to_category cat on(t1.product_id = cat.product_id) WHERE (0=1 OR t2.attribute_id = '4') AND ad.language_id = '1' AND t2.language_id = '1' AND cat.category_id IN (400) GROUP BY t1.product_id,t1.price,t1.cprice,name,text,t2.attribute_id ORDER BY IF(t1.cprice>t1.price,1,-1)*(t1.cprice-t1.price), t1.product_id LIMIT 15

----------------------

Страница:/viz-079
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 72.19мс 

SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM oc_review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM oc_product_special ps LEFT JOIN oc_product p ON (ps.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) GROUP BY ps.product_id ORDER BY LCASE(pd.name) ASC, LCASE(pd.name) ASC LIMIT 0,10

----------------------

 

Надіслати
Поділитися на інших сайтах


2 минуты назад, mihailgoryachev сказал:

Снёс фильтр. Без него всё гораздо шустрее стало. Можно ли считать этот результат нормальным? markimaxэто фильтр косячный? А что можно сделать, чтобы работало по индексам? AWARO,  так денег не хватит покупать и сносить). Что с ним не так?

 

 

Да запросы просто ужасно тормозные
Да и зачем вы ставили vqmod на ocStore 2 ?!
Хотите проблем ?

Надіслати
Поділитися на інших сайтах

2 minutes ago, markimax said:

 

Да запросы просто ужасно тормозные
Да и зачем вы ставили vqmod на ocStore 2 ?!
Хотите проблем ?

Некоторые модули требовали этого. И всётаки, в последнем логе всё работает по индексам? Если нет, то как этого добиться? Заранее спасибо!

Надіслати
Поділитися на інших сайтах


3 минуты назад, mihailgoryachev сказал:

Некоторые модули требовали этого. И всётаки, в последнем логе всё работает по индексам? Если нет, то как этого добиться? Заранее спасибо!

Что значит "требовали"
К моНАХам такие модули!
Если модуль "требует" vQmod под opencart 2+  то это уже говномодуль и место его в мусорке

Стоимость услуг по оптимизации скорости ~10k рублей

Надіслати
Поділитися на інших сайтах

11 минут назад, markimax сказал:

Если модуль "требует" vQmod под opencart 2+  то это уже говномодуль и место его в мусорке

 

На заре появления opencart 2+  модуль MFP был с vqmod.  По крайней мере, мне такие варианты попадались.

Надіслати
Поділитися на інших сайтах

Но это не значит, что нужно писать такие запросы (причем план запроса будет одинаковый что  с повторяющиимся строками, что без), но время будет отличаться

SELECT COUNT(DISTINCT `product_id`) AS `total`
FROM (
    SELECT DISTINCT `p`.`product_id`
        FROM oc_category_path cp
        LEFT JOIN oc_product_to_category p2c ON (cp.category_id = p2c.category_id)
        LEFT JOIN oc_product p ON (p2c.product_id = p.product_id)
        LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id)
        LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id)    
        WHERE `p`.`date_available` <= NOW()
            AND `p`.`status` = '1'
            AND `cp`.`path_id` IN(10003)
            AND  pd.language_id = '1'
            AND p.status = '1'
            AND p.date_available <= NOW()
            AND p2s.store_id = '0'
            AND `cp`.`path_id` IN(10003)) AS `tmp`
    WHERE `product_id` IN(

 

А тем более - совсем непонятно зачем там вложенность

Ладно с лайками реплейасми - задача получить товары с атрибутами, а это попытка привести атрибуты к одному виду

Надіслати
Поділитися на інших сайтах

Очень сильно помог бесплатный модуль https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=26678&filter_search=db&filter_license=0&filter_download_id=43

 

Оптимизирует бд в один клик. Результат на лицо... Бесплатно, Карл!:

 

----------------------

Страница:/aksessuary/aksessuary-po-naznacheniyu/kryuchki/?mfp=2-tsvet-aksessuarov[%D0%91%D1%80%D0%BE%D0%BD%D0%B7%D0%B0]&mfilterAjax=1&mfilterIdx=1&mfilterBTypes=price%2Csearch%2Cattribute&mfilterPath=59_10002_10014&_=1504825409297
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/catalog/model/module/mega_filter.php
Время выполнения: 23.28мс 


			SELECT 
				REPLACE(REPLACE(TRIM(`text`), '
', ''), '
', '') AS `text`, `attribute_id`, COUNT( DISTINCT `tmp`.`product_id` ) AS `total`
			FROM( 
			SELECT
				`pa`.`attribute_id`,`p`.`product_id`,`pa`.`text`
			FROM
				`oc_product` AS `p`
			INNER JOIN
				`oc_product_attribute` AS `pa`
			ON
				`pa`.`product_id` = `p`.`product_id` AND `pa`.`language_id` = '1'
			
				INNER JOIN
					`oc_product_to_store` AS `p2s`
				ON
					`p2s`.`product_id` = `p`.`product_id` AND `p2s`.`store_id` = 0
			
			INNER JOIN
				`oc_product_to_category` AS `p2c`
			ON
				`p2c`.`product_id` = `p`.`product_id`
		
			WHERE
				`p`.`date_available` <= NOW() AND `p`.`status` = '1' AND `p2c`.`category_id` IN(10014)
		 ) AS `tmp` 
				 WHERE `tmp`.`attribute_id` NOT IN(2) AND `product_id` IN( 
					SELECT 
						`product_id` 
					FROM 
						`oc_product_attribute`
					WHERE 
						( REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('Бронза', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/Бронза/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('Бронза/%', ' ', ''), '
', ''), '
', '') OR REPLACE(REPLACE(REPLACE(`text`, ' ', ''), '
', ''), '
', '') LIKE REPLACE(REPLACE(REPLACE('%/Бронза', ' ', ''), '
', ''), '
', '') ) AND
						`language_id` = 1 AND
						`attribute_id` = 2 
				) 
			GROUP BY 
				`text`, `attribute_id`
		

----------------------

Страница:/aksessuary/aksessuary-po-naznacheniyu/kryuchki/?mfp=2-tsvet-aksessuarov[%D0%91%D1%80%D0%BE%D0%BD%D0%B7%D0%B0]&mfilterAjax=1&mfilterIdx=1&mfilterBTypes=price%2Csearch%2Cattribute&mfilterPath=59_10002_10014&_=1504825409297
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/catalog/model/module/mega_filter.php
Время выполнения: 20.38мс 


			SELECT 
				REPLACE(REPLACE(TRIM(`text`), '
', ''), '
', '') AS `text`, `attribute_id`, COUNT( DISTINCT `tmp`.`product_id` ) AS `total`
			FROM( 
			SELECT
				`pa`.`attribute_id`,`p`.`product_id`,`pa`.`text`
			FROM
				`oc_product` AS `p`
			INNER JOIN
				`oc_product_attribute` AS `pa`
			ON
				`pa`.`product_id` = `p`.`product_id` AND `pa`.`language_id` = '1'
			
				INNER JOIN
					`oc_product_to_store` AS `p2s`
				ON
					`p2s`.`product_id` = `p`.`product_id` AND `p2s`.`store_id` = 0
			
			INNER JOIN
				`oc_product_to_category` AS `p2c`
			ON
				`p2c`.`product_id` = `p`.`product_id`
		
			WHERE
				`p`.`date_available` <= NOW() AND `p`.`status` = '1' AND `p2c`.`category_id` IN(10014)
		 ) AS `tmp` 
				 
			GROUP BY 
				`text`, `attribute_id`
		

----------------------

 

Змінено користувачем mihailgoryachev
Надіслати
Поділитися на інших сайтах


в phpmyadmin тоже самое и не нужно устанавливать ничего, а если по крону то вообще ничего делать не надо (0 кликов)

 

это какая степень фрагментации должна быть чтоб просто OPTIMIZE TABLE мог дать существенное что то

 

я думал там хоть что то поинтереснее

  • +1 1
Надіслати
Поділитися на інших сайтах

10 минут назад, Otvet сказал:

в phpmyadmin тоже самое и не нужно устанавливать ничего, а если по крону то вообще ничего делать не надо (0 кликов)

 

это какая степень фрагментации должна быть чтоб просто OPTIMIZE TABLE мог дать существенное что то

 

я думал там хоть что то поинтереснее

:)
А что может быть "поинтереснее" сделать с такими вот запросами ?
Magic button ?
Как знаем из опыта, не бывает

Надіслати
Поділитися на інших сайтах

6 часов назад, mihailgoryachev сказал:

Очень сильно помог бесплатный модуль

 

Оптимизирует бд в один клик. Результат на лицо... Бесплатно, Карл!:

 

 

 

Ничего он не "оптимизирует" и ничем он вам не помог

8291368107.png

6958607538.png

Надіслати
Поділитися на інших сайтах

3 часа назад, markimax сказал:

 

Ничего он не "оптимизирует" и ничем он вам не помог

 

Этот модуль ничем не может помочь ибо:

 

                foreach ($data['tables'] as $table => $value) {
                    $result = $this->db->query('optimize table '. $table);
                    
                    $data['tables'][$table] = $result->rows[0]['Msg_text'];
                }

А это всего навсего обычная дефрагментация, от которой польза есть, но она минимальная.
 

Цитата


Да и зачем вы ставили vqmod на ocStore 2 ?!

 

 

Марк, ну от вкумода -(10-20) мс макс. Какие проблемы то с ним?

 

У пациента тугой шаблон. Я знаю там где собака порылась наизусть )))

Надіслати
Поділитися на інших сайтах

4 минуты назад, snastik сказал:

Марк, ну от вкумода -(10-20) мс макс. Какие проблемы то с ним?

Не суть в скорости
Суть в совместимости
Он мешает работать ocmod модификаторам корректно
Постоянно встречаю конфликты между ними и в не зависимости от версии vQmod (и последние тоже не дружат)

  • +1 1
Надіслати
Поділитися на інших сайтах

По крайней мере, я теперь точно знаю, что дело в фильтре, а вот подобрать аналог мфп, у которого была бы мобильная версия довольно сложно. Господа, вы говорите про монструозность запросов этого модуля, а аналоги то вообще существуют? Которые не будут грузить базу без кеша с таким количеством товаров?!

Надіслати
Поділитися на інших сайтах


1 минуту назад, mihailgoryachev сказал:

По крайней мере, я теперь точно знаю, что дело в фильтре, а вот подобрать аналог мфп, у которого была бы мобильная версия довольно сложно. Господа, вы говорите про монструозность запросов этого модуля, а аналоги то вообще существуют? Которые не будут грузить базу без кеша с таким количеством товаров?!

 

Должен вас расстроить, mfp  - таки самый быстрый вариант. Также 12 000 товаров для него подъемная величина. И тормоза обусловлены больше не общим количеством товаров, а количеством товаров в категории и количеством параметров фильтра. Но в целом в рамках приличия это все решается.
Пока из всех задач у меня нерешенная за всю практику одна 100 000 товаров в категории и 30 000 вариантов параметров фильтра на одной странице.
Быстрее 5.5 секунд пока сделать не получилось. Но мы ведем определенные работы в этом направлении, и возможно при переводе MFP на sphinx - все будет работать как надо.


В вашей же ситуации нет никаких проблем запустить систему, чтобы она быстро заработала в том формате в котором вы ее собрали.

Надіслати
Поділитися на інших сайтах

2 минуты назад, mihailgoryachev сказал:

По крайней мере, я теперь точно знаю, что дело в фильтре, а вот подобрать аналог мфп, у которого была бы мобильная версия довольно сложно. Господа, вы говорите про монструозность запросов этого модуля, а аналоги то вообще существуют? Которые не будут грузить базу без кеша с таким количеством товаров?!

Нет, не существует
Оптимизируйте настройки самого MFP

Выключайте функционал подсчета количества и т п
Уменьшите количество "опций" выбора
Т е все надо делать с головой

  • +1 1
Надіслати
Поділитися на інших сайтах

В 08.09.2017 в 12:09, snastik сказал:

Этот модуль ничем не может помочь ибо:

 

А это всего навсего обычная дефрагментация, от которой польза есть, но она минимальная.
 

 

Марк, ну от вкумода -(10-20) мс макс. Какие проблемы то с ним?

 

У пациента тугой шаблон. Я знаю там где собака порылась наизусть )))

 

Snastik -  у вас наверно личка забита,написать не возможно... Тот же шаблон, та же проблема, как раз необходимо ваше вмешательство.

Надіслати
Поділитися на інших сайтах


Ребят, подскажите, я что-то совсем запутался. Попробовал установить другой шаблон, затестил на дефолтном, удалил все модули... по страницам передвигается как черепаха, при этом запросы по 20 мс, а на деле по 5-8 секунд открывается.

 

Смущает то, что при переходе на уже открытую ранее страницу, например иду с первой на вторую, со второй на третью и обратно на вторую, последняя открывается моментально. Как будто работает кешер, но его я тоже выключил. 

 

Пожалуйста, объясните мне по какому принципу это работает? Может ли это быть связано с созданием кеша для изображений, ведь я их загружал не через админку, а просто ссылкой. через импорт.

 

Пример каталога с большим количеством товара. Первые 10-15 страниц я обошёл, должны грузиться быстро, по моей логике. http://test.vkomforte.su/osveshenie/osveshenie-po-naznacheniyu/lyustry/

 

----------------------

Страница:/osveshenie/osveshenie-po-naznacheniyu/lyustry/?page=2
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 27.22мс 

SELECT p.product_id, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM oc_product_to_category p2c LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id = '10062' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 48,48

----------------------

Страница:/osveshenie/osveshenie-po-naznacheniyu/lyustry/?page=3
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 10.23мс 

SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product_to_category p2c LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id = '10062'

----------------------

Страница:/osveshenie/osveshenie-po-naznacheniyu/lyustry/?page=3
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 22.53мс 

SELECT p.product_id, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM oc_product_to_category p2c LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id = '10062' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 96,48

----------------------

Страница:/osveshenie/osveshenie-po-naznacheniyu/lyustry/?page=4
Источник:/var/www/vkomforte/data/www/test.vkomforte.su/vqmod/vqcache/vq2-system_storage_modification_catalog_model_catalog_product.php
Время выполнения: 22.63мс 

SELECT p.product_id, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM oc_product_to_category p2c LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id = '10062' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 144,48

----------------------

 

Змінено користувачем mihailgoryachev
Надіслати
Поділитися на інших сайтах


2 минуты назад, mihailgoryachev сказал:

Ребят, подскажите, я что-то совсем запутался. Попробовал установить другой шаблон, затестил на дефолтном, удалил все модули... по страницам передвигается как черепаха, при этом запросы по 20 мс, а на деле по 5-8 секунд открывается.

 

Смущает то, что при переходе на уже открытую ранее страницу, например иду с первой на вторую, со второй на третью и обратно на вторую, последняя открывается моментально. Как будто работает кешер, но его я тоже выключил. 

 

Пожалуйста, объясните мне по какому принципу это работает? Может ли это быть связано с созданием кеша для изображений, ведь я их загружал не через админку, а просто ссылкой. через импорт.

 

Пример каталога с большим количеством товара. Первые 10-15 страниц я обошёл, должны грузиться быстро, по моей логике. http://test.vkomforte.su/osveshenie/osveshenie-po-naznacheniyu/lyustry/

 

 

Да возможно такое так как opencart делает ресайз изображений  в кеш
А это очень долгая операция

Надіслати
Поділитися на інших сайтах

16 часов назад, texnare сказал:

 

Snastik -  у вас наверно личка забита,написать не возможно... Тот же шаблон, та же проблема, как раз необходимо ваше вмешательство.

Наверное, сейчас отпишусь

Надіслати
Поділитися на інших сайтах

4 часа назад, mihailgoryachev сказал:

А есть ли какое-то решение для автоматического создания этого кеша? Ну не обходить же мне все страницы вручную...

https://xenus-link-sleuth.en.softonic.com/

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.