EAVカタログとフラットカタログの違いは次のとおりです。
1. Eavカタログ
EAVは、データが完全に正規化された形式のエンティティ属性値データベースモデルです。各列のデータ値は、それぞれのデータ型テーブルに保存されます。例、製品の場合、
製品IDはcatalog_product_entity_int
テーブルに保存され、
catalog_product_entity_varchar
表の製品名、
catalog_product_entity_decimal
表の製品価格、
catalog_product_entity_datetime
テーブルの製品作成日、
catalog_product_entity_text
表の製品説明。
EAVは、1つの製品の詳細だけを取得したい場合でも、5〜6個のテーブルを結合するため複雑です。
列はEAVでは属性と呼ばれます。
2.フラットカタログ
フラットモデルは1つのテーブルのみを使用するため、正規化されず、より多くのデータベース領域を使用します。EAVオーバーヘッドをクリアし、
1つの製品の詳細を取得するために5〜6個のテーブルを結合するのではなく、製品全体をロードするのに1つのクエリのみを必要とするため、パフォーマンスが向上します。
列は、フラットモデルではフィールドと呼ばれます。
Magentoは、定期的に標準コレクションにクエリを実行し、次の形式でフラットデータベーステーブルを作成するインデクサーを実装しました。ここで、*はストアIDです。
catalog_category_flat_store_*
catalog_product_flat_*
これらの表には、読み取り専用の非正規化製品およびカテゴリデータが含まれています。これにより、Magentoは1つのクエリでカテゴリと製品データを取得できます。
に移動して、フラットカタログを有効にできSystem > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product
ます。これをyesに設定します。
カタログのEAVテーブルに新しい属性を追加する場合。その後、インデックスの再作成を忘れずに実行してください(System > Configuration > Index Management)
。インデックスを再作成すると、フラットカタログテーブルが更新されます。
詳細については、Magentoの「EAV」および「Flat Catalog」を確認してください。