Magento 2:フラットテーブルはまだものですか?


17

Magento 2では、フラットテーブルはまだ心配する必要がありますか?フラットテーブルをオンにできるUIがあることは知っていますが、フラットテーブルがどれだけうまくテストされているか、さらに必要であるかどうかはわかりません。

フラットテーブル依然として存在する場合-フラットテーブルの属性は、いつどこで生成および/または再生成されますか。これはインデックスの再作成時にのみ発生しますか?または、他のUIアクションでフラットテーブル生成をトリガーできますか?で起こりphp bin/magento setup:di:compileますか?他の場所?

また、Magentoは、属性をフラット属性にする必要があるかどうかをどのように決定しますか?されているすべての EAV属性が平坦化?または、そうでないかもしれない他のものがありますか?

回答:


24

はい、平らなテーブルはまだ物です。「ストア」->「構成」->「カタログ」->「ストアフロント」から製品およびカテゴリーのフラット表を有効にできます。 ここに画像の説明を入力してください

なぜフラットテーブルが必要なのですか?

大規模なカタログデータのパフォーマンスが大幅に向上します。クライアントの1つには5つのカテゴリと約250の製品しかないので、フラットのオン/オフは関係ありません。800のカテゴリと17000の製品と5つのマルチストアがある別のストアに切り替えたとき、それは本当に重要でした。データベースで何が起こっているかに気付き始めると、パフォーマンスが向上します。複数のWebサイトがある場合、データベースは次のようになります。

各店舗のフラットな製品テーブル

カテゴリについても同じこと

インデックスであっても、テーブルサイズが大きくなると、結合のポイントが非常に高くなります。フラットテーブルはJOINを削減(排除ではない)します。

それらはいつ作成または更新されますか

で完全なインデックス再作成を行うと、フラットテーブルが再生成されますbin/magento indexer:reindex。製品またはカテゴリの更新時に更新されます。関連する行のみが更新されます。

フラットテーブルは生成されません setup:di:compile

**どの属性がフラットテーブルに入りますか?(およびいくつかの制限)**

簡単な答えは、製品リスト(リスト+​​階層化ナビゲーション)で使用されるすべての属性です。属性ストアフロント設定は、属性をフラットテーブルに含めるかどうかを決定します

ここに画像の説明を入力してください

以下で説明する制限のため、すべての属性がフラット化されるわけではありません。

フラットテーブルの制限

最後に、これらのフラットテーブルには、mysqlによって課せられる1つの制限があります。テーブルには行サイズと列サイズの制限があります。mysqlテーブルの制限について詳しく読むことができます。

<max_index_count>64</max_index_count>module-catalogのconfig.xmlにこの興味深いノードがあります。

お役に立てば幸いです。


2
フラット注文はどうですか?フラット注文を行うためのオプションは、次のカテゴリの製品のためのものにはない
ahnbizcad

それはすることが可能であるDROP平らなテーブルと、それはして作成してみましょうかindexer:reindex?たとえば、テーブルが修復不能な状態でクラッシュした場合。
fritzmg

@ahnbizcadの注文はすでにフラットです。sales_orderテーブル。
vitoriodachef


0

フラットテーブルはもはや問題ではありません。パフォーマンスの改善は加えられず、次のリリースでは非推奨になります。

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