商品点数1万件以上はFlatテーブルを使用しましょう
この記事は公開から 1年以上が経過しています。現在の最新情報との整合性については弊社では一切の責任を負いかねます。
Magentoは10万点以上の商品をアプリケーション的にカスタマイズなしで保持できます。
しかし、保持できることと適切なパフォーマンスが出ているかどうか、と言うことは全く別物です。
特に商品データはEAV(Entity Attribute Value)という設計に基づいたデータ構造をしており、1件の商品を取得するだけでもたくさんのSQL文を発行しなければならない仕組みになっています。
つまり、商品点数が増えれば増えるほどそのクエリ数は増加していき、最終的にパフォーマンス低下を招いてしまうわけです。
その対策として、Magentoには「Flatテーブル」という仕組みが用意されています。
これは複雑かつ多くのSQL文を必要とするEAV構造を事前にアプリケーションが扱いやすい形に変形したデータに置き換えることでパフォーマンス低下を防ぎつつも更新時の処理量の増加を最小限に抑えることができる仕組みなのです。
なぜなら、Flatケーブルを使用するとデータ変形のための処理が商品やカテゴリ保存時に実行されるため、多少管理画面の処理が遅くなってしまうからです。
Magento内部ではこの処理を更新・追加する商品・カテゴリに対してだけ実行することで通常の管理業務では負荷が大きくならないように制御しています。
Magento.incが公開しているホワイトペーパーでは、商品点数が 8万点の時に数%のレスポンス向上が見られるとしています。わずか数%ですが、大量のアクセスがある場合にはこれが大きな差になりますので、商品点数が多いサイトは最初からFlatテーブルを使用することが望ましいでしょう。
なお、エクステンションの中にはFlatテーブルと相性の悪いものがありますので、これらを使う場合は注意が必要です。
(基本的にはエクステンション導入前にテスト環境で試験をするのが無難であると思います)
- お知らせ (34)
- Magento Open Source (169)
- Adobe Commerce (86)
- Magentoトピックス (349)
- Magentoバージョンアップ (11)
- OroCommerce (1)
- AkeneoPIM (16)
- Shopware (26)
- 世界のプライバシー保護規制 (11)
- OroCRM (14)
- Typo3 (9)
- イベント (27)
- Mage-OS (1)
- エクステンションリリース情報 (75)
- Mautic (1)