여러 Magento CE 상점을 운영하고 있으며 캐싱 속도를 높이지만 카트와 결제는 여전히 느립니다. 이 페이지의 속도를 높이는 데 경험이나 팁이 있습니까?
아마도 데이터베이스 최적화를 통해?
결제에서 주문을 저장할 때 일부 쿼리가 서버의 느린 쿼리 로그에 표시되고 데이터베이스에 병목 현상이있는 것으로 보입니다.
여러 Magento CE 상점을 운영하고 있으며 캐싱 속도를 높이지만 카트와 결제는 여전히 느립니다. 이 페이지의 속도를 높이는 데 경험이나 팁이 있습니까?
아마도 데이터베이스 최적화를 통해?
결제에서 주문을 저장할 때 일부 쿼리가 서버의 느린 쿼리 로그에 표시되고 데이터베이스에 병목 현상이있는 것으로 보입니다.
답변:
개인적인 경험에서, Mage_Rss 모듈을 비활성화하면 체크 아웃 프로세스에서 '캐시 정리'를 4 번 강제로 수행합니다. 파일 시스템 캐시를 사용하는 경우 매우 비쌉니다. 데이터베이스 나 memcached를 사용하는 경우 여전히 비쌉니다.
CE Only Mage_Downloadable을 다운로드 할 수없는 이유는 다운로드 가능한 제품을 사용하지 않는 한 비슷한 이유 때문에 장바구니에 여러 항목이있을 때 checkout_type_onepage_save_order_after
응답 시간에 항목 수 를 곱하는 것과 같은 관찰자가 있기 때문에 체크 아웃 및 카트 작업 속도가 빨라집니다. 카트에.
xhprof / xhgui를 연결 하고 프로파일 링을 수행하십시오.
Module "Enterprise_PricePermissions" requires module "Mage_Downloadable
이러한 변경 사항은 주문이 진행될 때마다 Magento가 캐시를 플러시하고 다시 색인을 생성하지 못하도록하므로 성능에 큰 영향을 미칩니다.
그러나 결과적으로 재고 수준 등 콘텐츠가 오래 될 수 있습니다.
실험 방식으로 해결하려면 독일 뮌헨의 첫 마 젠토 해커 톤에서 확장 기능이 있습니다.
https://github.com/magento-hackathon/MongoDB-OrderTransactions
그들은 주문을 mongo db에 대기열에 넣습니다. mysql-server에 다시 쓸 수있는로드가 없다면 아이디어입니다. 그러나 나는이 프로젝트가 얼마나 멀리 준비되어 있는지 모른다. Afaik은 모든 글을 다 쓰지만 뒤 글을 쓰지는 않습니다.
어려움을 겪고있는 Magento CE 버전을 모르겠습니다. 그러나 CE 1.6에서 심각한 성능 문제가 발생했습니다.
이유 : 인덱스가 잘못되었거나 누락되었습니다. CE 1.6.2에서 수정 된
경우 도움이되는지 확인할 수 있습니다.
총 73 개 항목으로 총 123 초에서 4 초로 38 개 라인의 결제 시간을 줄였습니다 !!!!
여기에 온다 :
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/* Foreign Keys must be dropped in the target to ensure that requires changes can be done*/
ALTER TABLE `core_url_rewrite`
DROP FOREIGN KEY `FK_CORE_URL_REWRITE_CTGR_ID_CAT_CTGR_ENTT_ENTT_ID` ,
DROP FOREIGN KEY `FK_CORE_URL_REWRITE_STORE_ID_CORE_STORE_STORE_ID` ;
/* Alter table in target */
ALTER TABLE `catalog_category_entity_varchar`
DROP KEY `MAGMI_CCEV_OPTIMIZATION_IDX` ;
/* Alter table in target */
ALTER TABLE `catalog_product_bundle_stock_index`
DROP KEY `PRIMARY`, ADD PRIMARY KEY(`entity_id`,`website_id`,`stock_id`,`option_id`) ;
/* Alter table in target */
ALTER TABLE `catalog_product_entity_media_gallery`
DROP KEY `MAGMI_CPEM_OPTIMIZATION_IDX` ;
/* Alter table in target */
ALTER TABLE `core_url_rewrite`
CHANGE `id_path` `id_path` varchar(255) COLLATE utf8_general_ci NULL COMMENT 'Id Path' after `store_id` ,
CHANGE `request_path` `request_path` varchar(255) COLLATE utf8_general_ci NULL COMMENT 'Request Path' after `id_path` ,
CHANGE `target_path` `target_path` varchar(255) COLLATE utf8_general_ci NULL COMMENT 'Target Path' after `request_path` ,
CHANGE `is_system` `is_system` smallint(5) unsigned NULL DEFAULT 1 COMMENT 'Defines is Rewrite System' after `target_path` ,
CHANGE `options` `options` varchar(255) COLLATE utf8_general_ci NULL COMMENT 'Options' after `is_system` ,
CHANGE `description` `description` varchar(255) COLLATE utf8_general_ci NULL COMMENT 'Deascription' after `options` ,
CHANGE `category_id` `category_id` int(10) unsigned NULL COMMENT 'Category Id' after `description` ,
CHANGE `product_id` `product_id` int(10) unsigned NULL COMMENT 'Product Id' after `category_id` ,
ADD KEY `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_CATEGORY_ENTITY_ENTITY_ID`(`product_id`) ,
DROP KEY `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_PRODUCT_ENTITY_ENTITY_ID` ,
ADD CONSTRAINT `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_CATEGORY_ENTITY_ENTITY_ID`
FOREIGN KEY (`product_id`) REFERENCES `catalog_product_entity` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE ,
DROP FOREIGN KEY `FK_CORE_URL_REWRITE_PRODUCT_ID_CATALOG_PRODUCT_ENTITY_ENTITY_ID` ;
/* Alter table in target */
ALTER TABLE `eav_attribute`
DROP KEY `MAGMI_EA_CODE_OPTIMIZATION_IDX` ;
/* Alter table in target */
ALTER TABLE `eav_attribute_option_value`
DROP KEY `MAGMI_EAOV_OPTIMIZATION_IDX` ;
/* The foreign keys that were dropped are now re-created*/
ALTER TABLE `core_url_rewrite`
ADD CONSTRAINT `FK_CORE_URL_REWRITE_CTGR_ID_CAT_CTGR_ENTT_ENTT_ID`
FOREIGN KEY (`category_id`) REFERENCES `catalog_category_entity` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE ,
ADD CONSTRAINT `FK_CORE_URL_REWRITE_STORE_ID_CORE_STORE_STORE_ID`
FOREIGN KEY (`store_id`) REFERENCES `core_store` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE ;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
큰 데이터베이스 작업 속도를 높이는 가장 좋은 방법은 데이터베이스를 데이터베이스 사용에 최적화 된 자체 서버에 두는 것입니다. 계산 영역에서 코드 단위로 개선 할 수있는 것은 많지 않습니다 (Configurable과 같은 특정 유형의 제품은 실제로 견적 프로세스를 중단시킬 수 있지만).
아마도 DB에서 읽기 및 쓰기를 분리하는 것을보십시오. 다른 복제본을 구성하는 최선의 방법에 대한 자세한 정보가있을 수 있지만, 복제를 수행하는 데있어 항상 걱정되는 것은 있지만 거의 즉시 복제 설정이 필요합니다.