Перейти к содержанию
mihailgoryachev

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

Рекомендуемые сообщения

Добрый день! версия движка 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 см/%'

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я бы и шаблон за одно снёс

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Снёс фильтр. Без него всё гораздо шустрее стало. Можно ли считать этот результат нормальным? 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.