2012-10-15 4 views
0

나는 magento에서 URL 재 작성의 재 색인 생성에 대해 생각하고 있습니다. 우리는 130k 개의 간단하고 구성 가능한 제품을 가지고 있습니다. 그리고 reindexing은 많은 메모리를 소모합니다. 기본적으로 메모리 제한으로 인해이 작업을 완료 할 수 없습니다.Magento - 느린 URL 재 작성 재진입

그래서 전 과정을 가속화 할 수있는 해결책을 찾기 시작했습니다. Mage_Catalog_Model_Url::_refreshProductRewrite에서 전체 재 인덱싱이 발생합니다. 시스템이 모든 제품 및 카테고리와 상점을 반복하기 때문입니다. 각 반복마다 1 또는 2 개의 동작이 수행됩니다. insertOnDuplicate

나는 그런 쿼리를 어딘가에 저장하고 훨씬 더 빨라질 수있는 하나 이상의 큰 쿼리에 병합하는 것에 대해 생각하고있다.

$this->getResource()->saveRewrite($rewriteData, $this->_rewrite); 

    if ($this->getShouldSaveRewritesHistory($category->getStoreId())) { 
     $this->_saveRewriteHistory($rewriteData, $this->_rewrite); 
    } 

사람 더 나은 아이디어가 어떻게 개선해야처럼

한 comibation (제품, 카테고리, 저장)에 대한

느린 비트 보이는 ?

답변

2

필자는 제품을 사용해 본 적이 없다고 말할 수는 없지만 (어쨌든 나는 제휴 관계가 아닙니다) this module by EcomDev 을 살펴볼 가치가 있습니다. 그것들은 posted tests 에서 매우 기분이 좋을 것 같아서 잠재적으로 많은 작업을 줄일 수 있습니다.

+0

core_url_rewrite 테이블에 해당하는 기능을 소개합니다. 내가 핵심 솔루션을 그들의 솔루션으로 대체한다면 나는 우리의 앱에서 무엇이든 깨지 않을 것인가 확실하지 않다. 빠른 방법으로 core_url_rewrite 테이블을 채우는 무언가를 찾고 있습니다. – Jaro

+0

많은 수의 제품이있는 사이트에서 Ecomdev 모듈을 사용했습니다. 인덱싱 성능이 크게 향상되었으며 아무 것도 깨뜨리지 않았습니다. Ivan과 Ecomdev 팀은 훌륭한 일을합니다. –

+0

예, 정말 흥미로운 것 같습니다. 해결 방법을 만들었습니다. 깨지는 부분은이 경우 실제로 필요하지 않은 거래 인 것처럼 보였습니다. 그래서'Mage :: getSingleton ('catalog/url') -> refreshRewrites();'를 외부 PHP 스크립트에서 호출하는 것으로 충분합니다. 충분한 리소스와 시간을 주면 잘 작동합니다. 일반적인 Magento Indexing으로 빠르며 150k 제품 및 200 카테고리에 대한 작업을 수행합니다. – Jaro