왜 "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.