왜 "Flat Catalog"를 사용해야합니까?


24

magento 웹 사이트의 속도 문제에 대한 비트 조사를 수행하는 동안 사람들이 "플랫 카탈로그" 를 활성화 하여 성능과 속도를 향상시키는 링크가 있습니다.

문제는 기본적으로 활성화되어 있지 않은 이유는 속도가 문제라는 것입니다.

"플랫 카탈로그"를 활성화해도 약간의 영향이 있습니까?

내 magento 웹 사이트에는 100 개의 제품과 500 개의 번들 제품이 있으며 36 개의 제품을 한 번에로드 할 때 속도가 상당히 문제가됩니다.

"플랫 카탈로그"를 활성화하면 문제가 해결됩니까?

답변:


35

EAV 카탈로그와 플랫 카탈로그의 차이점은 다음과 같습니다.

1. 카탈로그 카탈로그

EAV는 엔티티 속성 값 데이터베이스 모델이며 데이터가 완전히 정규화 된 형식입니다. 각 열 데이터 값은 해당 데이터 형식 테이블에 저장됩니다. 예를 들어, 제품의 경우

제품 ID는 catalog_product_entity_int테이블에 저장되며

catalog_product_entity_varchar표의 제품 이름

catalog_product_entity_decimal테이블에있는 제품 가격 ,

catalog_product_entity_datetime테이블에 제품 생성 날짜

catalog_product_entity_text표의 제품 설명 .

EAV는 하나의 제품 세부 정보 만 얻으려는 경우에도 5-6 개의 테이블을 결합하므로 복잡합니다.

EAV에서는 열을 속성이라고합니다.

2. 플랫 카탈로그

플랫 모델은 하나의 테이블 만 사용하므로 정규화되지 않고 더 많은 데이터베이스 공간을 사용합니다. EAV 오버 헤드를 지우고

하나의 제품 세부 정보를 얻기 위해 5-6 테이블을 조인하는 대신 전체 제품을로드하기 위해 하나의 쿼리 만 필요하므로 성능에 좋을 때 좋습니다.

플랫 모델에서는 열을 필드라고합니다.

Magento는 정기적으로 표준 컬렉션을 쿼리하고 플랫 데이터베이스 테이블을 다음 형식으로 채울 인덱서를 구현했습니다. 여기서 *는 상점 ID입니다.

catalog_category_flat_store_*
catalog_product_flat_*

이 테이블에는 정규화되지 않은 제품 및 범주 데이터가 있으며 읽기 전용입니다. 이를 통해 Magento는 단일 쿼리에서 범주 및 제품 데이터를 가져올 수 있습니다.


로 이동하여 플랫 카탈로그를 활성화 할 수 있습니다 System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product. 이것을 yes로 설정하십시오.

카탈로그의 EAV 테이블에 새 속성을 추가하는 경우 그런 다음 다시 색인 생성을 실행하는 것을 잊지 마십시오 (System > Configuration > Index Management). 재색 인화하면 플랫 카탈로그 테이블이 새로 고쳐집니다.

자세한 내용 은 Magento의 "EAV"및 "Flat Catalog" 를 확인하십시오.


확인 1 : 평평하게 eav로 전환하고 eav로 평평하게 전환 할 수 있습니까? 2 : flat을 사용할 때 동적 열을 추가 할 수 있습니까?
mdeveloper

예, 당신은 그들 사이를 전환 할 수 있습니다. 동적 열을 추가 할 수도 있습니다. 그러나 EAV에 새로운 속성을 추가 한 후에 다시 색인 생성을 실행하십시오
Rohit Kundale

@RohitKundale : 많은 속성이없는 제품에 플랫 카탈로그를 사용하면 제품에 대해 많은 기능이 표시되지 않습니다. 나는 또한 다시 색인했다. 플랫 카탈로그를 사용하는 동안 모든 속성이 동적 열에 대해 인덱싱되지 않는 이유는 무엇입니까?
Anurag Khandelwal


이것은 내가 magento를 사용하기 시작했을 때 나에게 보여준 첫 번째 일이었습니다.
Domino

5

Magento는 EAV (Entity-Attribute-Value) 모델을 사용하여 고객, 제품 및 범주 데이터를 데이터베이스에 저장합니다. EAV 모델을 사용하면 해당 객체에 대해 완전히 확장 가능한 속성을 가질 수 있지만 객체 속성은 하나의 매우 큰 테이블이 아닌 여러 테이블에 저장됩니다.

속성은 많은 테이블에 저장되고 동일한 속성 중 일부의 복사본을 포함하므로 SQL 쿼리는 길고 복잡 할 수 있습니다. 플랫 카탈로그 기능은 각 테이블에 제품 또는 카테고리에 대한 모든 필요한 데이터가 포함 된 새 테이블을 즉석에서 생성합니다.

이전 버전의 Magento에서는 제품 특성 또는 제품 범주 연결을 변경할 때마다 플랫 카탈로그를 다시 작성해야했습니다. 이 릴리스에서는 플랫 카탈로그가 1 분마다 또는 Magento cron 작업에 따라 업데이트됩니다.

플랫 카탈로그 옵션은 플랫 카탈로그 및 플랫 제품 인덱서를 사용할 수있을뿐만 아니라 카탈로그 및 장바구니 가격 규칙에 대한 인덱싱도 가능합니다. SKU가 많은 경우 (500,000 이상) 플랫 카탈로그 제품 옵션을 사용하면 Magento가 카탈로그 및 장바구니 가격 규칙을 빠르게 색인화 할 수 있습니다.


이 릴리스에서는 플랫 카탈로그가 1 분마다 또는 Magento cron 작업에 따라 업데이트됩니다. 어떤 버전을 추천
합니까

죄송합니다, 귀하의
의견을받지 못했습니다

귀하의 선택에 따라 현재 버전을 1.9로 참조 했습니까? 또는 magento 2
mdeveloper

1
어떤 버전이 당신에게 적합한 지에 달려 있습니다. 마 젠토 2가 더 유리합니다.
Arunendra

1
@Arunendra mdeveloper는 "이 릴리스에서는 플랫 카탈로그가 자동으로 업데이트됩니다"라고 말할 때 어떤 버전의 Magento를 참조하고 있는지 묻습니다. 어떤 릴리스에 대해 이야기하고 있습니까? Magento 1.9가이를 업데이트합니까? 마 젠토 2에만 있습니까? 어떤 Magento 버전에서이 업데이트가 시작 되었습니까?
Olivier

1

플랫 에이전트는 Magento 1.9.2에서도 자동으로 업그레이드 되지 않습니다 . 대량 업데이트 (예 : 재고 수준) 후 항상 수동으로 인덱스를 다시 작성하므로 1.9.3을 확인하지 않았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.