「フラットカタログ」を使用する理由とタイミング


24

magentoのWebサイトの速度の問題について少し調査していると、パフォーマンスと速度を向上させるために「フラットカタログ」を有効にするというリンクがありました。

問題は、デフォルトで有効になっていない理由は速度が問題であるということです。

「フラットカタログ」を有効にすると、いくつかの悪影響もありますか?

私のmagentoウェブサイトには10​​0個の製品と500個のバンドル製品があり、36個の製品を一度にロードするため、速度が非常に問題になります。

「フラットカタログ」を有効にすると問題が解決しますか?

回答:


35

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」を確認してください


わかりました1:いつでもフラットからeavとeavからフラットに切り替えることができますか?2:フラットを使用するときに動的列を追加できますか?
mdeveloper

はい、それらを切り替えることができます。動的列を追加することもできます。しかし、あなたはEAVに新しい属性を追加した後に再インデックスを実行させる
のRohit Kundale

@RohitKundale:多くの属性が欠落している製品のフラットカタログを有効にすると、製品の多くの機能が表示されません。また、インデックスを再作成しました。フラットカタログを有効にしているときに、すべての属性が動的列に対してインデックス付けされないのはなぜですか?
アヌラグハンデルヴァル


これは、私がmagentoを使い始めたときに最初に見せてくれたはずです。
ドミノ

5

Magentoは、データベースに顧客、製品、およびカテゴリのデータを保存するために、エンティティ属性値(EAV)モデルを使用します。EAVモデルでは、これらのオブジェクトに対して完全に拡張可能な属性を使用できますが、オブジェクトの属性は、1つの非常に大きなテーブルではなく、複数のテーブルに格納されます。

属性は多くのテーブルに格納されているため(同じ属性の一部のコピーが含まれる)、SQLクエリは長く複雑になる可能性があります。フラットカタログ機能は、その場で新しいテーブルを作成します。各行には、製品またはカテゴリに関するすべての必要なデータが含まれます。

Magentoの以前のバージョンでは、製品属性または製品カテゴリの関連付けを変更するたびにフラットカタログを再構築する必要がありました。このリリースでは、フラットカタログは毎分、またはMagentoのcronジョブに従って更新されます。

フラットカタログオプションは、フラットカタログおよびフラット製品インデクサーを有効にするだけでなく、カタログおよびショッピングカートの価格ルールのインデックスを有効にします。多数(500,000以上)のSKUがある場合、フラットカタログ製品オプションを有効にすると、Magentoはカタログおよびショッピングカートの価格ルールにすばやくインデックスを付けることができます。


このリリースでは、フラットカタログは毎分、またはMagentoのcronジョブに従って更新されます。参照しているバージョン
-mdeveloper

ごめんなさい、あなたの
主張が

あなたのオプションでは、現在のバージョンを1.9と呼びましたか。またはmagento 2
mdeveloper

1
どのバージョンがあなたに適しているかはあなた次第です。Magento 2にはさらに利点があります。
アルネンドラ

1
@Arunendra mdeveloperは、「このリリースでは、フラットカタログが更新されます」と言うときに、Magentoのどのバージョンを参照しているかを尋ねています。どのリリースについて話しているのですか?Magento 1.9はそれを更新してくれますか?Magento 2のみですか?どのMagentoバージョンでこれが更新され始めましたか?
オリビエ

1

フラットカテゴリは、Magento 1.9.2でも自動的にアップグレードされません。バルク(ストックレベルなど)の更新後にインデックスを常に手動で再構築するため、1.9.3をチェックしていません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.