카테고리 플랫 테이블 옵션은 언제 사용해야합니까?


16

이전 질문에 대한 후속 조치 로 알고 싶습니다.

카테고리 플랫 테이블 옵션은 언제 사용해야합니까?

인터넷 검색을하는 동안 " 매우 많은 카테고리가있을 때 "활성화 할 수있는 조언을 찾았습니다 . 그러나 무엇 많이 ?

제품의 플랫 테이블을 활성화하는 것이 성능 측면에서 좋은 결정이지만 카탈로그에 있어서도 매우 중요하다는 것을 쉽게 이해할 수 있습니다.

그리고 이것으로부터 어떤 의미가 있습니까? 플랫 카테고리 테이블을 사용하면 카테고리 제품 위치를 저장할 수 없다는 것을 알게되었습니다. 최소한 플랫 옵션이 없다면 (쉽게 마리우스 에게 도움을 줄 것) 쉽지 않습니다 . 다른 언급 가능한 것들이 있습니까?

미리 감사드립니다 :)

답변:


10

서버에 PHPMyAdmin이 설치되어 있으면 Magento의 테이블을 볼 수 있습니다. catalog_product_...및로 시작하는 것이 많이 있음을 알 수 있습니다 catalog_category_....

이 모든 것은 각 제품 및 카테고리에 사용되므로 호출하는 모든 페이지에 대해 복잡하고 많은 쿼리가 필요합니다.

MySQL의로드를 줄이고 상점 속도를 높이기 위해 Magento는 플랫 테이블을 제공합니다. 예를 들면 catalog_product_flat_1. 이 테이블의 구조를 살펴보면 기본 제품 데이터가 많이 있다는 것을 알 수 있습니다. 예를 들어 카테고리 제품 목록에서이 테이블에 대한 쿼리 대신 하나의 쿼리 만 실행하면됩니다. 속성 데이터를 포함하는 다른 여러 테이블.

그러나이 데이터는 다른 테이블의 데이터에서 집계되므로 제품을 저장할 때마다이 제품 데이터를 컴파일하기 위해 여러 개의 indexes( System > Configuration > Index Management)가 새로 고쳐집니다. 예를 들어 개발하는 동안 같은 경우에는 불필요 할 수 있습니다. 페이지로드 시간이 오래 걸리더라도 모든 변경 사항을 즉시 확인하려고합니다.

결론적으로, 상점을 대중에게 공개 할 때마다이를 켜고 프로그래밍 할 때 전체 제품 또는 카탈로그 오브젝트를 사용하지 말고 플랫 인덱스에서 제공 한 데이터를 사용하십시오.


항상 생산적인 환경에서 플랫 제품 테이블을 활성화한다고 생각합니다. 그러나 플랫 카테고리 테이블에 대해서는 확신이 없었습니다. 당신은 항상 둘 다 활성화한다고 말합니까? 보유한 카탈로그 수에 관계없이?
Celldweller

항상 활성화하면 범주가 많을수록 물론 이점이 커지지 만 범주가 10 개 뿐인 경우에도 몇 개의 쿼리가 저장됩니다.
Sander Mangel

4
플랫 카탈로그 엔티티는 항상 활성화해야하지만 이론 상으로는 작동하지 않는 경우가 있습니다. 이것은 제품 목록에 사용되는 많은 속성이 있고 mysql max 행 제한을 초과 할 때 발생합니다. 전에 한 번만 발생하는 것을 보았습니다. 많이 걱정할 필요는 없지만 그럴 경우 이유를 알게됩니다.
Marius

@Celldweller 질문에 대한 추가 정보를 제공해 주시겠습니까?
Sander Mangel

0

범주에 대한 범주가 많거나 사용자 지정 속성이 많으면 쿼리 복잡성이 줄어드는 것이 좋습니다. 무거운 짐은 그것으로부터 훨씬 더 많은 이점을 얻습니다. 주요 단점은 카테고리와 flat_categories가 매우 다른 인터페이스를 사용하므로 플랫 카테고리를 사용하는 경우 코드를 매우 조심스럽게 사용해야한다는 것입니다.


그들은 다시 있습니다. 많은 그리고 많은. ;-) 그래서 "의지하다"라고 말할 것입니까? 카탈로그가 10 개인 경우 플랫 카테고리 테이블을 활성화 하시겠습니까? 아니면 50? 선을 그리는 것도 가능합니까?
Celldweller

플랫 카탈로그를 사용하는 동안 코드 변경을 처리하기위한 몇 가지 예가있는 경우를 알아야합니다.
Anurag Khandelwal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.